5

私のHTMLピュリファイア設定では、これらのタグのみが許可されるようになりました

$configuration->set('HTML.Allowed', 'p,ul,ol,li');

リストのインデントを許可したいのですが、エディターはこのhtmlを使用しています

<ul style="margin-left: 40px;">

HTMLPurifier Allowedタグを変更するにはどうすればよいですか?を追加styleしようと思いましたが、許可されるスタイルを正確に指定する方がよいと思います。この場合は、を指定しますmargin-left。HTMLを変更する正しい方法は何ですか。この場合は許可されますか?

4

4 に答える 4

18

スタイル属性を許可してから、 %CSS.AllowedPropertiesを使用して許可されたCSS属性を変更します。

$ configuration-> set('HTML.Allowed'、'p、ul [style]、ol、li');
$ configuration-> set('CSS.AllowedProperties'、'margin-left');

PS HTML清浄機がどのように機能するかを理解していない人がたくさんいることに、私は驚いています。

于 2011-06-03T18:15:07.193 に答える
1

少なくとも、次のように、清浄機がサポートするタグの属性を許可する必要があります。

$configuration->set('HTML.Allowed', 'p,ul[style],ol,li');

ただし、属性のコンテンツを許可/制限できるかどうかはわかりません。

于 2011-06-03T17:11:23.920 に答える
1

属性をまったく許可しないことをお勧めします。style属性を許可すると、IE7(およびおそらく他のバージョンでは現時点ではわかりません)にXSSの脆弱性が発生しますが、要点は危険すぎるということです。HTMLを自分で解析し、コード内でユーザーの文字列を定数文字列に置き換える必要があります。HTMLを許可することは、非常に危険な行為です。セキュリティを強化するために、マークダウンのようなものを試すか、ユーザーが使用できる独自の非常に単純なマークアップタイプの言語(BBcodeなど)を作成することをお勧めします。

于 2011-06-03T17:15:08.050 に答える
1

SamTがIE7のXSSの脆弱性に関して述べたように、「expression()」(動的プロパティとも呼ばれます)を介してCSSでjavascriptの使用を許可したMicrosoftの天才的な動きのため、スタイル属性へのアクセスを許可することに注意してください。 http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx

IE8での削除について、Microsoftはユーザーを追加の脆弱性にさらしたことを露骨に認めています:http: //blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx

例:

<a href="" style="width: expression(alert('XSS'));">blah</a>

上記は、MSIE 5から7でjavascriptアラートボックスをポップアップします。MSDNのドキュメントによると、Quirksモードがアクティブな場合はIE8でも機能するはずです。IE9のクァークズモードでも発生する可能性がありますが、確信が持てません。

可能であれば、style属性へのアクセスを許可しないでください。将来の別のブラウザが、Microsoftが犯したのと同じ間違いを追加するという天才的なアイデアをいつ得るかはわかりません。

于 2011-06-03T17:33:47.747 に答える