在javascript中过滤转义尖括号
filtering escaped angle brackets in javascript
我有一个javascript特性,允许用户在页面上放置任意文本字符串。我不希望他们能够插入html或其他代码,只是纯文本。
所以我认为去掉所有的尖括号(<
>
)就可以了。(我不在乎他们是否在页面上有"破碎"的html,或者他们不能在他们的文本中放入尖括号)然后我意识到我必须过滤转义尖括号(<
>
)和其他可能。
为了安全起见,我需要过滤掉哪些内容?去掉所有的尖括号就可以了吗?
删除所有尖括号会奏效吗?
用转义后的形式替换所有尖括号。这样,人们可以随心所欲地编写"代码",而它只是以纯文本的形式显示。
确保你做的第一件事是将&
替换为&
<
就足够了。
b)对于属性值,例如,如果它在<input name="sendtoserver" value="custom text"/>
中,您需要注意双引号,但这是所有必要的。然而,<
和>
也很好。
这取决于上下文。如果你想安全起见,告诉你的JavaScript使用innerText
,它不需要编码,但你可能想把css设置为white-space:pre-wrap
。这样更不容易出错,但也更不兼容浏览器。
c)在一个松散相关的注意事项上,当使用反斜杠转义JavaScript字符串终止符时,可能会悄悄出现的项目是,如果您将内容放在脚本中,您需要照顾</script>
(不区分大小写),您可以只转义</
或/
应该足够
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 在JavaScript中输出转义字符
- 转义符不能与innerHTML一起使用
- 为什么我的d3.jsselectAll+过滤器没有过滤
- Rails 3.2 js.erb文件转义js
- 转义在jsp's脚本
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- Angular:使用选择列表选择过滤代码中的对象
- 在单击时过滤 JSON
- 如何在BookshelfJS中通过加入来过滤结果
- 使用Jinja2的JavaScript转义字符串
- 如何使用javascript过滤复杂的json对象
- 将c#视图模型转换为javascript模型时转义HTML标记
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- 删除单引号字符转义
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 如何使用javascript/jquery更改转义键的功能
- 过滤AngularJs中的数据
- 包含转义符号的正则表达式
- 在javascript中过滤转义尖括号