0

现在我正在考虑将我的博客变成一个用户生成的博客,人们可以在其中发布自己的内容。这样做的问题是它使我的博客容易受到 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 }
4

1 回答 1

0

你不应该阻止这个客户端。

如果您使用的是 jQuery,您很可能在准备就绪的函数中运行您的脚本,看起来像这样

$(function(){ /* some code */ });

因此,邪恶的脚本已经在运行。

用户服务器端清理以去除人们能够发布的所有有害脚本标签。您也可以使用所见即所得的编辑器,但之后仍应清理数据服务器端。

这是唯一确定的方法。

于 2013-08-03T23:29:37.460 回答