所以,如果我有一个不安全的字符串:
div
通过container
在div.text(str)
unsafe2
内安全附加(或将被追加),然后我如何安全有效地替换此字符串的中间部分 - {{ 1}}(或更大的字符串中的几个单独部分)与受信任的HTML(让我们说inline-block element
),它将显示为HTML,
,container
内的最终显示必须如下所示:
___
<div id='unsafe'></div> |___| <div id='unsafe3'></div>
编辑:假设我知道如何在字符串中找到这个unsafe2
。适当和安全地替换困扰我的那个问题。
Edit2:这里是一个简单的小提琴:https://jsfiddle.net/5pa7do7w/输入包含单词doggy
(Hello doggy, i'm here!
)的内容并点击回车,我们将假设这个是不安全的字符串来自其他用户的结束。在&#39;聊天&#39;字段doggy
将替换为彩色范围DOGGY
。这很容易做到,因为我正在使用.html(str)
,如果您将输入带有<script> alert
的不安全字符串,则使用此方法 - 它将被三角化,因为整个字符串附加为html
。我想通过Hello doggy, i'm here!
追加.text(str)
来逃避&#39;它,但仍然可以像现在一样将小狗交换为彩色html
。
Edit3:在尝试解决此问题时 - 更新了小提琴。它的外观和工作方式:https://jsfiddle.net/5pa7do7w/1/尝试输入<div></div> hey doggy are you <script> window.alert(hello) </script> good doggy
。但是我担心现在有可能用XSS打破js范围,因为我在分割它时在代码中使用非转义字符串,并且我不确定是否存在漏洞。