将元素中的脚本标记作为目标并删除
Target script tags within element and remove
现在我想把我的博客变成一个用户生成的博客,人们可以在这里发布自己的东西。这个问题是它使我的博客容易受到jquery注入的攻击。我搜索了一下,发现有人在谈论白名单和使用服务器端脚本,但由于我的博客由汤博乐托管,我仅限于CSS、HTML和jQuery,我不确定这是否是一个解决方案。
现在,这是其他用户可以更改/瞄准的唯一部分:
<h2><a href="Link" class="Title">
<p>//THIS IS WHERE THE USER GENERATED CONTENT GOES</p>
</a></h2>
问题的一个例子是,如果他们决定这样做:
<h2><a href="Link" class="Title">
<p><script>alert('injected');<script></p>
</a></h2>
现在,有没有办法防止上面的脚本出错?由于我只限于jQuery,我想了一个解决方案,比如:
var ContentWithScript = Anything inside <p></p> tags (or any other way to target it)
$(ContentWithScript).find('script').remove();
或
$(.Title).getElementsByTagName('p')
var Content=(this)
if Content contains string ('script) {
remove }
您不应该阻塞这个客户端。
如果你使用的是jQuery,你很可能是在一个准备好的函数中运行你的脚本,看起来像这个
$(function(){ /* some code */ });
正因为如此,邪恶的脚本将已经在运行。
用户服务器端消毒,去除人们可以发布的所有有害脚本标签。您也可以使用wysiwyg编辑器,但之后仍然应该清理数据服务器端。
这是唯一可以确定的方法。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除浏览器底部链接的目标Url's页
- 如何从子元素中删除数据目标和数据切换,或禁止元素触发事件
- 如何在删除之前设置 jquery 可排序目标列表的样式
- 从链接中删除所有目标=“_blank”
- 为什么每次删除和重新创建目标元素时动画速度都会增加
- 删除/避免将目标链接添加到URL
- 获取已删除的元素id,而不是删除目标id
- 如何通过键值删除目标json
- 将元素中的脚本标记作为目标并删除
- 拖动&使用HTML5中的嵌套目标删除
- 删除iframe link中的目标属性
- 我如何在Js中删除Url中的所有目标
- 是否有一种方法,目标所有的img标签与0x0大小,并在jQuery中删除它们
- 如何在刷新后删除id(#)目标
- 如果目标属性的值为null,我需要从锚点中删除它
- 如何在目标页面中删除没有ID's或类名等的HTML元素