反射型
恶意脚本作为网络请求的一部分。
const Koa = require(“koa”);
const app = new Koa();
app.use(async ctx => {
// ctx.body 即服务端响应的数据
ctx.body = ‘’;
})
app.listen(3000, () => {
console.log(‘启动成功’);
});
访问 http://127.0.0.1:3000/
可以看到 alert执行
反射型XSS1
举一个常见的场景,我们通过页面的url的一个参数来控制页面的展示内容,比如我们把上面的一部分代码改成下面这样
app.use(async ctx => {
// ctx.body 即服务端响应的数据
ctx.body = ctx.query.userName;
})
此时访问 http://127.0.0.1:3000?userName=xiaoming 可以看到页面上展示了xiaoming
,此时我们访问 http://127.0.0.1:3000?userName=<script>alert("反射型 XSS 攻击")</script>
, 可以看到页面弹出 alert。