XSS(Cross Site Script) 对用户的输入的恶意代码不进行校验,直接拼接到HTML中,返回给浏览器,并执行。
用户在URL参数中输入恶意代码,服务端拼接到HTML中,浏览器执行
在输入内容时将恶意代码通过 innerHTML 插入页面执行
恶意代码存储在服务端,用户请求时在浏览器执行
- 在前端发送请求到服务端时,对内容进行转义
- 服务端收到请求时,对内容进行转义
- 前端接受到服务端内容时,对内容转义
特殊字符 | 转义后 |
---|---|
< | < |
> | > |
/s | |
" | " |
\n | <br> |
- 设置响应头 httponly
- 设置https 响应头 secure
- 利用 content-security-policy
- default-src
- script-src
- style-src
- 设置响应头 x-xss-protection