0

エディターを使用して HTML 形式のコンテンツを入力できる Web サイトに取り組んでいます。

ただし、XSS インジェクションが気になります。エディターは Javascript を使用してクライアント側で情報をフィルタリングすることは明らかですが、クライアント側から何も信頼しないのが良い習慣であることを考えると、私はそれをほとんど信頼できません。

次のような特定のタグをホワイトリストに登録できるようにしたい:

<br> <img src=""> <p> <b>

ただし、XSS 攻撃に対して入力の安全なフィルターを実行します。

http://php.net/manual/en/function.strip-tags.phpの使用を検討しましたが、img タグが XSS ハッカーのお気に入りの 1 つであることに気付きました。

これを行う関数を作成することは可能ですか? それは安全でしょうか?

4

2 に答える 2

3

HTMLPurifier の使用:

$config = HTMLPurifier_Config::createDefault();

// the tags and attributes you want to allow
$config->set('HTML.Allowed', 'br,img[src],p,b');

$purifier = new HTMLPurifier($config);

print $purifier->purify($inputHtml);

別の可能な解決策は、HTML を にロードしDomDocument、不要な要素または属性を削除して、更新された HTML を取得することです。

于 2013-04-24T13:45:16.533 に答える
0

私はまだBBコードを好むだろう. http://phpclasses.orgで適切な BB パーサー クラスを見つけることができます。

于 2013-04-24T13:49:16.380 に答える