我必须保护 Java Web 应用程序免受 XSS 攻击。部分代码如下所示:
<script>
jsvariable = ${jspvariable}
use(jsvariable)
<script>
我的第一个困难是做这样的事情:
<script>
jsvariable = ${fn:escapeXml(jspvariable)}
use(jsvariable)
<script>
但是 escapeXml
并不能避免脚本标记内的 XSS。将值从 jsp 发送到 javascript 的正确方法是什么。
最佳答案
您可以将 jsp 数据写入 text/json block 中,浏览器将忽略该数据:
<script id="demo" type="text/json">
${jspvariable}
</script>
然后您可以在 dom 就绪时解析 javascript 文件中的值:
console.log(JSON.parse(document.getElementById('demo').innerHTML));
XSS 注入(inject)只会导致 JSON 解析错误
关于javascript - 将值从 jsp 发送到 javascript 的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25351773/