1、XSS(Cross Site Script)
通过HTML注入,插入恶意脚本。如今不一定是跨域。
1)反射型XSS /非持久型XSS
诱使用户点击一个恶意链接。
2)存储型XSS /持久型XSS
把用户输入的数据存储在服务器端。强稳定性。
3)DOM Based XSS
通过修改页面的DOM节点形成XSS,从效果上来说也是反射型XSS。
2、XSS Payload
窃取Cookie,Cookie的“HttpOnly标识可以防止Cookie劫持。
3、XSS防御
1)HttpOnly
2)输入检查
在客户端JavaScript和服务端代码实现相同的输入检查,阻挡大部分误操作的正常用户,节约服务器资源。
可以结合XSS Filter,但是XSS Filter对语境的了解不完整,可能会改变用户数据的语义。
3)输出检查
要求JavaScript的变量输出一定要在引号内。
或者,使用更加严格的JavaScriptEncode函数(数字、字母外都用十六进制编码)。
XSS主要发生在MVC架构中的View层——在应用拼接变量到HTML页面时产生
要在正确的地方使用正确的编码