2011-09-16 3 views
2

私はPHPでミニフォーラムを作成しています。テキストの書式設定と画像の埋め込みが制限されているユーザーの投稿を許可したいのですが、安全に行う(XSS-wise)下のものの最も最適なアプローチ。BBCodesの使用... HTMLを解析するか、それを完全に削除しますか? (XSS/PHP)

1)ユーザー入力からすべてのHTMLタグを取り除き、WYSIWYGエディターのコントロールをBBCodeに置き換えます。 strip_tagsで十分ですか?

2)WYSIWYGでHTML入力を許可しますが、パーサーを使用してHTMLからBBCodeへの出力を変換します。誰もこれのための安全なBBCodeパーサーをお勧めできますか?

他のアイデアは歓迎されていません。

答えて

4

セキュアであるためには、HTMLを解析または削除する必要はありません。印刷する前にすべてhtmlspecialcharsを実行してください。安全です。

さらに、これはBBcodeを使用することと直交しています。エディタに書式設定のためのBBコードを生成させることができます。htmlspecialcharsは決してそれを混乱させません。

+0

これは、私が取るつもりのルートのようです。最後の質問の1つは、htmlspecialcharsよりhtmlentitiesを多く推奨していますが、実際にはより安全ですか? – Bachx

+0

@Bachx:いいえ、個人的には、エンコードを正しく処理できない人たちを正しくぶつけさせることを除いて、 'htmlentities'には魅力的なユースケースはありません。 – Jon

関連する問題