
XSS(Cross Site Scripting)跨站脚本攻击:是指攻击者在网页中注入恶意脚本代码(通常是 JavaScript),当用户浏览该网页时,脚本会在用户的浏览器中执行,造成信息泄露、会话劫持、伪造操作等安全问题。
攻击者将恶意脚本“存储”在服务器端(如数据库、评论区),其他用户访问时就会触发。
示例:评论区输入 <script>alert('xss')</script>,其他用户浏览页面时弹窗。
攻击代码不是存储在服务器,而是通过 URL 参数等方式“反射”到页面,用户访问恶意链接时触发。
示例:访问 http://example.com/?name=<script>alert('xss')</script>,页面直接输出 name 参数内容。
攻击代码通过前端 JavaScript 操作 DOM 时插入,比如用 document.write、innerHTML 等不安全方式插入用户输入。
< > " ' & / 等。< 转为 <,> 转为 >。textContent 或 innerText,而不是 innerHTML。常用函数/库:
htmlspecialchars(),Python 的 html.escape(),Java 的 StringEscapeUtils.escapeHtml4(),Nodejs 的 xss()。eval、document.write、innerHTML 等插入用户内容。createElement、appendChild、textContentHttpOnly,防止 JS 读取 Cookie。Secure,仅允许 HTTPS 发送 Cookie。ejs.render("<div><%- user_input %></div>");
# 类似 encodeURIComponent(user_input)<div id="output"></div>
<script>
const userInput = '<script>alert("xss")</script>';
document.getElementById('output').textContent = userInput; // 安全
</script><template>
<div id="output">{{ userInput }}</div>
</template>
<script>
const userInput = '<script>alert("xss")</script>';
</script>add_header Content-Security-Policy "default-src 'self'; script-src 'self'";本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。