4

わかりました、ジレンマがあります。ユーザーが生の HTML を挿入できるようにする必要がありますが、スクリプトタグだけでなく、href などからすべての JS をブロックする必要があります。

htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

ただし、これにより、有効なタグもエンコードされた文字に変換されます。ストリップタグを使用すると、タグが削除されるため機能しません! (タグを許可できることは知っていますが、許可すると、<a></a>人々が悪意のあるJSを追加できるなどのタグが許可されます.

HTMLタグを許可するためにできることはありますが、XSSインジェクションはありませんか? 私は機能を計画しました:xss()そしてそれで私のサイトのテンプレートをセットアップしました. エスケープされた文字列を返します。(エスケープの助けが必要です:))

ありがとう!

4

1 に答える 1

3

関連: PHP で XSS を防止しながら一部の HTML を許可する

HTMLPurifier Docsのコード例:

require_once '/path/to/HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);

そのコードをxss(...)メソッドの参照として使用できます。

于 2012-10-17T20:06:42.497 に答える