跨站点脚本问题
Cross Site Scripting Issue
我想用我们的代码防止XSS,问题是它可能需要JS和html转义,并且可能有点棘手。
以下示例代码类似于我们的代码
<script>
var CURRENT_VALUE = '<img src=1 onerror=alert(1)>';
document.getElementById("valueBox").innerHTML = CURRENT_VALUE;
</script>
让我们假设CURRENT_VALUE是动态插入的。那么在这种情况下我该怎么办,我知道简单的 HTML 编码可能不起作用,因为攻击者可能会传递 unicode 转义值,并且当 JS 解析器清除它时,它可能会被转储到文档中。
那么正确的方法是什么,
我应该先做JS转义,然后在document.getElementbyID做html转义之前吗?这将如何工作?
假设CURRENT_VALUE是十六进制编码并包含/x027img...等等
现在我想我明白你要去哪里了 - 插入内容作为 TextNode 会做一些格式化:
var CURRENT_VALUE = '<img src=1 onerror=alert(1)>';
var node = document.createTextNode(CURRENT_VALUE);
var valueBox = document.getElementById("valueBox");
valueBox.appendChild(node);
console.log(valueBox.innerHTML);
如果您查看控制台输出,插入的 HTML 现在是:
<img src=1 onerror=alert(1)>
相关文章:
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- 一个简单的粘性头jQuery脚本的问题
- Javascript函数不工作.脚本定位问题
- Google 日历 API V3 会解决与会者和创建者 Java 脚本问题
- Ajax发布到PHP脚本,每5秒查询一次MySQL数据库的性能/问题
- 脚本加载问题
- 使用jqueryAjax和php脚本从mysql检索数据时遇到的问题
- 粘性js脚本出现问题
- 脚本化的blindUp/bblindDown问题
- JQuery脚本问题
- Javascript问题,flexslider脚本未加载
- Java脚本循环问题
- 我在向jquery脚本添加延迟时遇到问题
- 谷歌脚本javascript中的谷歌函数=importhtml解析问题
- 多个脚本导致链接问题?Javascript、CSS、HTML、Jquery
- 调用另一个php脚本生成图表时出现问题
- 脚本问题,获胜'Don’不允许我跑步和使用
- 客户端内服务器端经典ASP代码的问题<脚本>标签
- 在jQuery/JavaScript中使用承诺时遇到问题.脚本似乎没有等待