一.过滤
1.通过大小写混合的方式(有些后台只过滤小写)=> <ScRipt>alert(1111)</ScriPt>
2.修改前端代码(安全措施不可用前端,形同虚设)==>譬如最简单的长度限制,只要修改length就可
3.拼凑 ==> <scri<script>pt>alert(1111)</scr</script>ipt> ===>后台只会过滤一次,所以外面分散的可以拼凑而成
4.使用注释干扰 ===> <scr<?--test-->ipt>alert(111)</scri<?--test-->pt>
二.编码
(1) 后台会过滤一些特殊的字符,譬如script标签,但是可以通过各种编码可能不会被过滤,当浏览器对其识别时会正常翻译
注意:有些属性是不会解析某种编码的
例:<img src = x onerror = "alert%28%27xss%27%29"/> ===>这种是url编码,能够绕过后台,但onerror属性不会解析此编码,若将其换成html编码, 则 可以解析
(2)htmlspecialchars()函数:把预定义的字符转换成HTML实体
&(和)—>&
"(双引