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 を使用している場合は、スクリプトを on ready 関数で実行している可能性が高く、次のようになります。

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

このため、悪意のあるスクリプトが既に実行されています。

ユーザーが投稿できるすべての有害なスクリプト タグを削除するためのサーバー側のサニタイズ。wysiwyg エディターを使用することもできますが、後でデータ サーバー側をクリーンアップする必要があります。

それが確実な唯一の方法です。

于 2013-08-03T23:29:37.460 に答える