没有CSRF保护的HTML表单-漏洞解决办法

/ 0条评论 / 0 个点赞 / 1746人阅读
解决方法: Cookies Hashing:每一个表单请求中都加入随机的Cookie,由于网站中存在XSS漏洞而被偷窃的危险。

在Jsp文件头引入

<%@ page import="com.zxlhdata.framework.core.util.UUIDGenerator"%>

在登录的jsp中添加

<% 
//增加随机数,解决 CSRF 漏洞
String uuid = UUIDGenerator.generate();
request.getSession().setAttribute("randTxt",uuid);//设置cookie只读
String sessionid = request.getSession().getId();
response.setHeader("Set-Cookie", "JSESSIONID=" + sessionid + ";SameSite=Strict; HttpOnly");
 %>

form表单中添加一个隐藏域:Input

<input type="hidden" name="randSesion" value = "<%=request.getSession().getAttribute("randTxt")%>" />


服务器HTTP响应头“Server”字段泄漏版本信息

在tomcat中增加 server="apache"   名称可以自定义

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" server="apache"  redirectPort="8444"/>