AppScan安全漏洞报告
1.会话cookie 中缺少HttpOnly 属性。
修复任务: 向所有会话cookie 添加“HttpOnly”属性
解决方案,过滤器中,
Java代码 收藏代码
HttpServletResponse response2 = (HttpServletResponse)response;
//httponly是微软对cookie做的扩展,该值指定 Cookie 是否可通过客户端脚本访问,
//解决用户的cookie可能被盗用的问题,减少跨站脚本攻击
response2.setHeader( "Set-Cookie", "name=value; HttpOnly");
2.跨站点请求伪造。修复任务: 拒绝恶意请求。
解决方案,过滤器中
Java代码 收藏代码
//HTTP 头设置 Referer过滤
String referer = request2.getHeader("Referer"); //REFRESH
if(referer!=null && referer.indexOf(basePath)<0){ request2.getRequestDispatcher(request2.getRequestURI()).forward(request2, response);
}
3.Autocomplete HTML Attribute Not Disabled for Password Field
修复任务: Correctly set the "autocomplete" attribute to "off"
Html代码 收藏代码
密 码:
<input name="userinfo.userPwd" type="password" autocomplete = "off"/>
4.HTML 注释敏感信息泄露。删除注释信息。
5.跨站点脚本编制,SQL 盲注,通过框架钓鱼,链接注入(便于跨站请求伪造)。修复任务: 过滤掉用户输入中的危险字符
Java代码 收藏代码
private String filterDangerString(String value) {
if (value == null) {
return null;
}
value = value.replaceAll("\\|", "");
value = value.replaceAll("&", "&");
value = value.replaceAll(";", "");
value = value.replaceAll("@", "");
value = value.replaceAll("'", "");
value = value.replaceAll("\"", "");
value = value.replaceAll("\\'", "");
value = value.replaceAll("\\\"", "");
value = value.replaceAll("<", "<");
value = value.replaceAll(">", ">");
value = value.replaceAll("\\(", "");
value = value.replaceAll("\\)", "");
value = value.replaceAll("\\+", "");
value = value.replaceAll("\r", "");
value = value.replaceAll("\n", "");
value = value.replaceAll("script", "");
value = value.replaceAll("%27", "");
value = value.replaceAll("%22", "");
value = value.replaceAll("%3E", "");
value = value.replaceAll("%3C", "");
value = value.replaceAll("%3D", "");
value = value.replaceAll("%2F", "");
return value;
}
1.会话cookie 中缺少HttpOnly 属性。
修复任务: 向所有会话cookie 添加“HttpOnly”属性
解决方案,过滤器中,
Java代码 收藏代码
HttpServletResponse response2 = (HttpServletResponse)response;
//httponly是微软对cookie做的扩展,该值指定 Cookie 是否可通过客户端脚本访问,
//解决用户的cookie可能被盗用的问题,减少跨站脚本攻击
response2.setHeader( "Set-Cookie", "name=value; HttpOnly");
2.跨站点请求伪造。修复任务: 拒绝恶意请求。
解决方案,过滤器中
Java代码 收藏代码
//HTTP 头设置 Referer过滤
String referer = request2.getHeader("Referer"); //REFRESH
if(referer!=null && referer.indexOf(basePath)<0){ request2.getRequestDispatcher(request2.getRequestURI()).forward(request2, response);
}
3.Autocomplete HTML Attribute Not Disabled for Password Field
修复任务: Correctly set the "autocomplete" attribute to "off"
Html代码 收藏代码
密 码:
<input name="userinfo.userPwd" type="password" autocomplete = "off"/>
4.HTML 注释敏感信息泄露。删除注释信息。
5.跨站点脚本编制,SQL 盲注,通过框架钓鱼,链接注入(便于跨站请求伪造)。修复任务: 过滤掉用户输入中的危险字符
Java代码 收藏代码
private String filterDangerString(String value) {
if (value == null) {
return null;
}
value = value.replaceAll("\\|", "");
value = value.replaceAll("&", "&");
value = value.replaceAll(";", "");
value = value.replaceAll("@", "");
value = value.replaceAll("'", "");
value = value.replaceAll("\"", "");
value = value.replaceAll("\\'", "");
value = value.replaceAll("\\\"", "");
value = value.replaceAll("<", "<");
value = value.replaceAll(">", ">");
value = value.replaceAll("\\(", "");
value = value.replaceAll("\\)", "");
value = value.replaceAll("\\+", "");
value = value.replaceAll("\r", "");
value = value.replaceAll("\n", "");
value = value.replaceAll("script", "");
value = value.replaceAll("%27", "");
value = value.replaceAll("%22", "");
value = value.replaceAll("%3E", "");
value = value.replaceAll("%3C", "");
value = value.replaceAll("%3D", "");
value = value.replaceAll("%2F", "");
return value;
}