有没有人知道在jQuery中从字符串中转义HTML的简单方法?我需要能够传递任意字符串并将其正确转义以便在HTML页面中显示(防止JavaScript/HTML注入攻击).我确信可以扩展jQuery来实现这一点,但我目前还不了解框架来完成这个任务.
我想通过javascript函数向HTML显示文本.如何在JS中转义html特殊字符?有API吗?
我一直在尝试使用innerHTML来尝试找出我需要在我正在处理的webapp上加强安全性的地方,并且我在Mozilla文档上遇到了一个我没想过的有趣的注入方法.
var name = "<img src=x onerror=alert(1)>";
element.innerHTML = name; // Instantly runs code.
Run Code Online (Sandbox Code Playgroud)
它让我想知道.)如果我应该使用innerHTML,而b.)如果它不是一个问题,为什么我一直在避免其他代码插入方法,特别是eval.
让我们假设我在浏览器上运行javascript客户端,并且我采取必要的预防措施以避免在易于访问的功能中暴露任何敏感信息,并且我已经得到了一些任意指定的点,我已经确定innerHTML不是安全性风险,我已经优化了我的代码,以至于我不一定担心性能受到轻微打击......
我是否通过使用eval创建任何其他问题?除了纯代码注入之外还有其他安全问题吗?
或者,是innerHTML,我应该表现出同样的关心吗?它同样危险吗?
我有以下JQuery代码:
$(this).text('Options ▴');
Run Code Online (Sandbox Code Playgroud)
但是,ascii代码没有显示在我的网页上.显示的所有内容都在网页上Options ▴.
我究竟做错了什么?