XSS是一种脚本攻击,利用的是一些网站的漏洞,主要是对输入和输出不进行脚本过滤所造成的,具体可以去搜索一下。
针对这种攻击有比较简单的解决办法:过滤html脚本。
这里有个参考函数:
这个方法很简单,把"<"">"检查一遍,返回一个是否存在禁用的布尔值。只要仔细地检查输出和输入就可以避免这个问题,主要还是在应用中多进行这方面的测试就可以很好地避免。
另外还要注意,尽量不要在数据库内保存可疑数据,如果一定要保存富文本,则可以仿照BB code的方式换一种脚本,这其实在论坛中是很普遍的做法。毕竟HTML是相当危险的。
没办法java的只能放到杂事去了。
针对这种攻击有比较简单的解决办法:过滤html脚本。
这里有个参考函数:
public static final String [] DISABLE_SCRIPT=new String[]{"%3C","%3c","%3E","%3e","<",">"};
public static boolean existDisableScript(String s){
if(StringUtils.isNotEmpty(s)){
for(int i=0;i<DISABLE_SCRIPT.length;i++){
if(StringUtils.contains(s, DISABLE_SCRIPT[i])){
return true;
}
}
}
return false;
}
这个方法很简单,把"<"">"检查一遍,返回一个是否存在禁用的布尔值。只要仔细地检查输出和输入就可以避免这个问题,主要还是在应用中多进行这方面的测试就可以很好地避免。
另外还要注意,尽量不要在数据库内保存可疑数据,如果一定要保存富文本,则可以仿照BB code的方式换一种脚本,这其实在论坛中是很普遍的做法。毕竟HTML是相当危险的。
没办法java的只能放到杂事去了。