前言
最近看到一篇文章,文章讲到输入框有被 注入代码攻击 的危险,自己做了一个小示例,发现确实有这样的情况。
示例
先来看小示例吧,一个最简单的留言功能,输入框输入信息,然后把信息插入页面:
页面效果
关键代码
const btn = document.getElementById('button');
const myInput = document.getElementById('input');
const content = document.getElementById('content');
btn.onclick = ()=> {content.innerHTML = myInput.value
};
代码注入输入框 可能引发攻击的几种方式
HTML 代码注入输入框
在输入框中输入
哈哈,你的页面结构被我破坏了
,然后提交,效果如下:,然后提交。我们会发现没有弹窗,这里没有执行 JavaScript 程序的原因是:HTML 5 中不执行由 innerHTML 插入的