java使用jsp servlet来防止csrf ***的实现方法
2021-03-13 10:28
标签:equal info att mic ase ofo ack 小结 利用 CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且***方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS***相比,CSRF***往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。 常见的解决方法: Cookies Hashing:每一个表单请求中都加入随机的Cookie,由于网站中存在XSS漏洞而被偷窃的危险。 HTTP refer:可以对服务器获得的请求来路进行欺骗以使得他们看起来合法,这种方法不能够有效防止***。 验证码:用户提交的每一个表单中使用一个随机验证码,让用户在文本框中填写图片上的随机字符串,并且在提交表单后对其进行检测。 令牌Tocken:一次性令牌在完成他们的工作后将被销毁,比较安全。 解决方法如下: 小结: jsp中使用java代码,使用形式,错误使用过‘${}‘. 隐藏区域使用简化形式/>将会把/当成字符串解析,而不是结束符。 日志或者打印出random_form、random_session 的值,防止出现无法调试的情况。 jsp中规规矩矩的使用session.setAttribute()设值,servlet中使用request.getSession().getAttribute() 取值最保险。 隐藏区一定要位于提交按钮前面,否则将读取不到隐藏区的值。 http://www.cnblogs.com/davidwang456/p/3579339.html 使用filter来做 http://www.cnblogs.com/davidwang456/p/3579444.html 使用tag或者spring security包含的东西来做。 java使用jsp servlet来防止csrf ***的实现方法 标签:equal info att mic ase ofo ack 小结 利用 原文地址:https://blog.51cto.com/15015181/2556789
1.csrf知识
>
String random_form=request.getParameter("random_form");
String random_session=(String)request.getSession().getAttribute("random_session");
out.println("random_form:"+random_form);
out.println("random_session:"+random_session);
if(random_form!=null&&random_session!=null&&random_form.equalsIgnoreCase(random_session)){
//business
}
下一篇:学习数据结构和算法心得
文章标题:java使用jsp servlet来防止csrf ***的实现方法
文章链接:http://soscw.com/index.php/essay/64078.html