gpt4 book ai didi

java - 保护旧 Web 应用程序免受 CSRF 攻击,而无需在所有表单中添加隐藏输入

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:07 25 4
gpt4 key购买 nike

在最近对我们的 Java 网络应用程序进行安全扫描时,我们发现了 CSRF 漏洞。我知道对于使用 Spring Security 等安全框架的较新应用程序,我们可以轻松地为每个表单添加隐藏输入并进行其他所需的配置,这将解决问题。

<input type="hidden"
name="${_csrf.parameterName}"
value="${_csrf.token}"/>

但我们的应用程序非常古老,仍在使用 acegi-security (1.0.2),并且有 100 多个用 JSP 编写的表单。在所有这些表单上添加一个输入类型隐藏的 csrf token 似乎非常乏味。有没有更聪明的方法来保护我的应用程序而无需所有这些艰苦的工作。

最佳答案

Synchronizer Token Pattern 是防止 CSRF 的最佳方式。

另一种防止 CSRF 的方法是检查 referer header 。示例代码,

String request_origin = request.getHeader("referer");

//check if origin of the request
//is coming from known source
if(!knownURIs(request_origin)){
//reject the request
}
else
//process request

但是,如果您使用的是 HTTPS 和/或如果您的网站容易受到 XSS/Open 重定向的攻击,这种方法可以轻松绕过此检查,则此方法将不起作用。

关于java - 保护旧 Web 应用程序免受 CSRF 攻击,而无需在所有表单中添加隐藏输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com