dom XSS
下面是我写的一个dom XSS 的小demo
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();app.use(router.routes());
router.get('/',async ctx => {
ctx.body = `
<input type="text" id="name">
<input type="button" onclick="copyText()" value="Send">
<div id="hello"></div>
<script>
function copyText(){document.getElementById("hello").innerHTML ="<h2>Hello " + document.getElementById("name").value + ".</h>"}
</script>`
});
app.listen(3000);
运行之后,访问 127.0.0.1:3000 进行XSS测试发现不能弹窗,原因是被浏览器拦截了,
在 ctx.body 前面加一句 ctx.set(‘x-xss-protection’,‘0’); 就可以了。
ctx.set('x-xss-protection','0');