Java防跨域攻击解决方案
Posted ycyk_168
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java防跨域攻击解决方案相关的知识,希望对你有一定的参考价值。
思路: 判断referer里的地址是否和当前的地址一致,如果不一致则说明是跨域攻击的,否则不是/**
* 验证请求的合法性,防止跨域攻击
*
* @param request
* @return
*/
@SuppressWarnings("rawtypes")
publicstatic boolean validateRequest(HttpServletRequest request)
String referer = "";
booleanreferer_sign = true;// true 站内提交,验证通过 //false 站外提交,验证失败
Enumeration headerValues = request.getHeaders("referer");
while(headerValues.hasMoreElements())
referer = (String) headerValues.nextElement();
// 判断是否存在请求页面
if(StringUtils.isBlank(referer)) referer_sign = false;
else
// 判断请求页面和getRequestURI是否相同
String servername_str = request.getServerName();
if(StringUtils.isNotBlank(servername_str))
intindex = 0;
if(StringUtils.indexOf(referer, "https://") == 0)
index = 8;
elseif (StringUtils.indexOf(referer, "http://") == 0)
index = 7;
if(referer.length() - index < servername_str.length()) // 长度不够
referer_sign = false;
else // 比较字符串(主机名称)是否相同
String referer_str = referer.substring(index, index + servername_str.length());
if(!servername_str.equalsIgnoreCase(referer_str)) referer_sign = false;
elsereferer_sign = false;
returnreferer_sign;
转自: http://www.mspring.org/post/241.html
以上是关于Java防跨域攻击解决方案的主要内容,如果未能解决你的问题,请参考以下文章
五品达通用权限系统__pd-tools-xxs(防跨站脚本攻击)
五品达通用权限系统__pd-tools-xxs(防跨站脚本攻击)