java csrf解决方案_java – 在不添加所有表单的隐藏输入的情况下,针对CSRF保护旧的Web应用程序...

在我们最近的Java Web应用程序安全扫描期间,我们发现了CSRF漏洞.

我知道对于使用像Spring Security这样的安全框架的新应用程序,我们可以轻松地为每个表单添加隐藏的输入并执行其他所需的配置,这将解决问题.

name="${_csrf.parameterName}"

value="${_csrf.token}"/>

但是我们的应用程序仍然使用acegi-security(1.0.2)并且有多个用JSP编写的表单.

在所有这些表单上添加输入类型隐藏的csrf标记似乎非常繁琐.没有所有这些艰苦的工作,是否有更智能的方法来保护我的应用程序.

解决方法:

同步器令牌模式是防止CSRF的最佳方式.

防止CSRF的另一种方法是检查referer标头.一个示例代码,

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,spring-security,csrf

来源: https://codeday.me/bug/20190708/1400067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值