全局存储型XSS漏洞修复

什么是XSS?

人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。

跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。

XSS能干啥?

1、盗用cookie,获取敏感信息。

2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。

3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。

5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

简单来说就是攻击者通过正常的页面或请求,将非法的参数(如:js代码、html代码)请求到后端存储在数据库中,等下次页面回显时执行非法的参数,从而达到攻击的目的。

XSS漏洞的修复

1、对用户输入的数据进行严格过滤,包括但不限于以下字符及字符串
Javascript script src href img onerror onload { } ( ) <> = , . ; :  " ' # ! / * \
2、 根据页面的输出背景环境,对输出进行编码,常见符号的实体编码如下:[较根本的解决方法]
“(双引号):"
’ (单引号):&apos
 &(&符号):&
<(左尖括号):<
>(右尖括号):>
3、 使用一个统一的规则和库做输出编码
4、 在Cookie 上设置HTTPOnly 标志,从而禁止客户端脚本访问Cookie

 

你可能感兴趣的:(java)