1

HTML Purifier http://htmlpurifier.orgを使用して、WYSIWYG エディターからコンテンツをフィルター処理し始めたところです。コンテンツは、ユーザーまたは同じグループ内の他のユーザーに表示されます。システムには他のグループがあり、データの整合性は非常に重要です。

私は PHP を使用しており、コンテンツは MySQL データベースに保存されています。

HTML Purifier は多くのプロセッサ パワーを使用するので、インバウンド コンテンツでのみ使用し、フィルタなしでデータベースから直接アウトバウンド コンテンツを表示したいと考えています。フィルタリングされているので安全なはずだというのは簡単に聞こえますが、100%安全だとは言えません。

インバウンド 'p[style],strong,em,u,h1,h2,h3,h4,h5,h6,li,ol,ul,span[style],div[style],br,ins,del' の許可リスト

編集: http://htmlpurifier.org/docs/enduser-slow.htmlでサイトがこれを行うことを提案していることがわかりましたが、重要性が高いため、ここでいくつかの意見をお願いします。

4

1 に答える 1

1

データベースに送信するときに入力をサニタイズします。そうしないと、CPU を集中的に使用するステップであるため、毎秒数ページビューで大きな問題が発生します。

ただし、データベース内のすべての行がサニタイズされていることを確認する必要があります。そうしないと、いつか XSS にさらされることになります (エントリを編集または追加するすべての要求を確認し、データベース内の既存の行について考えてください)。

小さなヒント : スペースに余裕がある場合は、サニタイズされた入力とサニタイズされていない入力を保存します。ある日、パラメーターで何かを変更する必要がある場合、または HTMLPurifier に主要な 0 日がある場合、テーブル全体を更新できます。ただし、これを 1 日行う場合は、その影響に十分注意してください ;)

編集:スタイルを許可して何をしているのかを確認するか、少数のCSSスタイルのみを許可してください...

于 2012-07-05T12:53:31.140 に答える