我必须保护一个针对XSS攻击的java Web应用程序。代码的某些部分如下所示:
<script>
jsvariable = ${jspvariable}
use(jsvariable)
<script>
我的第一个难点是做这样的事情:
<script>
jsvariable = ${fn:escapeXml(jspvariable)}
use(jsvariable)
<script>
但是escapeXml
并没有在脚本标记内避免使用XSS。从jsp向javascript发送值的正确方法是什么。
答案 0 :(得分:3)
您可以在text / json块中编写jsp数据,浏览器将忽略它:
<script id="demo" type="text/json">
${jspvariable}
</script>
然后,您可以在dom ready上解析javascript文件中的值:
console.log(JSON.parse(document.getElementById('demo').innerHTML));
XSS注入只能导致JSON解析错误