XSS 攻击
原理
相当于把脚本通过 post 上传服务器,服务器把数据错误渲染 通过 encoudeURI 可避免

黑客诱导用户点击带有恶意代码为参数的 url,浏览器收到参数,误以为是正确参数,需在 script 标签中执行
使用转义避免 过滤有安全风险的属性

防御手段
- 输入过滤和验证:在接收用户输入时,进行输入过滤和验证,去除或转义用户输入中的特殊字符和 HTML 标签,从而防止攻击者注入恶意代码。
- 输出转义:在将数据输出到页面时,对特殊字符和 HTML 标签进行转义,从而防止攻击者通过注入恶意代码来窃取用户信息或攻击网站。
- CSP(内容安全策略):在网站中添加 CSP 策略,限制网页中可以加载的内容和脚本,防止攻击者通过注入恶意脚本来攻击网站。
- HTTP Only Cookie:将 Cookie 标记为 HTTP Only,防止 JavaScript 脚本通过 document.cookie 获取到会话令牌,从而防止会话劫持攻击。
- 输入长度限制:限制用户输入的长度,防止攻击者利用长度攻击