jsp防止xss转义方法

输入的参数,必须经过转码才能输出到页面上,如果不经转换而原样直接输出到页面上,则会产生XSS漏洞。


比如:在输入框,输入姓名“张三confirm(123)”
如果直接在页面上输出的话,就会弹窗显示123,其实就是执行了用户设定的js操作了,这就产生了xss漏洞。

xss漏洞很好预防,只要转码就行了。


预防方式,只要输出时做处理:
(1)jtsl:<c:out value="${name}" escapeXml="true"/>
(2)EL: ${fn:escapeXml(param)}
(3)工具类: 
org.apache.commons.lang.StringEscapeUtils.escapeXml(String)。


实质就是转换几个特殊字符就行了:
> , < , & , ", '


另外,重点注意区别(包含了单引号):
xml转义字符:
&lt; < 小于号
&gt; > 大于号
&amp; & 和
&apos; ' 单引号
&quot; " 双引号



html转义字符:
< 小于 &lt;
> 大于 &gt;
& &符号 &amp;
" 双引号 &quot;
© 版权 &copy;
® 已注册商标 &reg;
™ 商标(美国) ™
× 乘号 &times;
÷ 除号 &divide;

xss

相关推荐