现在我正在考虑将我的博客变成一个用户生成的博客,人们可以发布他们自己的东西。 这个问题是它使我的博客容易受到jquery注入。我搜索并发现人们谈论白名单和使用服务器端脚本,但由于我的博客由Tumblr托管,我只限于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 }
答案 0 :(得分:0)
你不应该阻止这个客户端。
如果你正在使用jQuery,你很可能在一个就绪函数中运行你的脚本,看起来像这样
$(function(){ /* some code */ });
因此,邪恶的脚本已经在运行。
用户服务器端清理以删除人们能够发布的所有有害脚本标记。你也可以使用所见即所得的编辑器,但你仍然应该在之后清理数据服务器端。
这是确定的唯一方法。