XSS的过滤和绕过
在构建网站的时候可以利用一些函数来将构成XSS的一些关键字符给过滤掉,从而达到简单防范XSS入侵的目的。
但是攻击者也可以利用一些方法进行绕过,从而达到攻击的目的。(例如更改字母大小写,通过img、body等标签的事件或者 iframe 等标签的 src 注入恶意的 js 代码等)
XSS的防御
总体思路就是对用户的输入(和URL参数)进行过滤,对输出进行html编码。对输入的内容进行过滤,可以分为黑名单过滤和白名单过滤。黑名单过滤虽然可以拦截大部分的XSS攻击,但是还是存在被绕过的风险。白名单过滤虽然可以基本杜绝XSS攻击,但是真实环境中一般是不能进行如此严格的白名单过滤的。