javascript - 将值从 jsp 发送到 javascript 的安全方法

标签 javascript jsp xss

我必须保护 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/

相关文章:

javascript - 无需重定向的 HTML 页面提交

javascript - HTML5 FileWriter 无效状态错误

Javascript 清理 : The most safe way to insert possible XSS html string

javascript - 使用 lodash 从具有属性的对象数组中提取对象

javascript - 列出 friend 之间最常见的游戏

javascript - 在ajax调用中以JSON形式接收jsp响应

jsp - 如何在 Struts 2 中测试 bean 属性?

java - HTTP 状态 500 - 提交响应后无法转发 TOMCAT 7.55

javascript - 跨域资源共享(CORS)——我在这里遗漏了什么吗?

php - 不先转义就输出某些内容有多危险