5

ユーザーがフォーラムで使用できる HTML タグの限定的なホワイト リストを許可したいと考えています。したがって、HTML Purifier を次のように構成しました。

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li');
$purifier = new HTMLPurifier($config);

私が疑問に思っているのは、受け入れられる HTML タグの数が減ったことを除いて、HTML Purifier のデフォルト構成が引き続き適用されるのか、それとも可能なすべての構成パラメーターを手動で再設定する必要があるのか​​ということです。

さらに、安全を確保するために、デフォルトの構成を微調整する必要がありますか? 私は XSS 保護全体に不慣れで、HTML Purifier にも不慣れで、マニュアルが多くの「基本的な」ヒントやヒントを提供していることに気づきませんでした。

4

2 に答える 2

4

HTML Purifier は既定で安全であり、%HTML.Allowed を変更することによって課す制限は、許可されたタグ セットを減らすことのみが保証されます。http://htmlpurifier.org/live/smoketests/printDefinition.phpをチェックして、設定を微調整すると許可されたタグセットがどのように変更されるかを確認してください。

于 2012-11-07T05:58:33.503 に答える
0

DOM パーサーを使用して、タグの種類が許可されている HTML タグのホワイト リストに含まれているかどうかを確認してみませんか?

入力を DOM ノード リストに変換すると、すべての DOM ノードをループして、型がそのように許可されているかどうかを確認できるはずです。php.net には、入力サニタイズの問題を解決しようとしているあなたのような他の人によって書かれた、これを行う方法の素晴らしい例があります。

詳細はこちら: http://php.net/manual/en/class.domdocument.php

于 2012-11-07T00:05:10.280 に答える