2011-01-28 3 views
-2

ユーザーがカスタムHTMLをサイトに追加できるようにしたいので、XSS攻撃を避けたい。これはどうすればいいですか?私はこれらのタグだけを許可すると思った:ユーザーがカスタムhtmlをプロフィールページに追加できるようにする

[b], [i], [u], [img], [hr], [list], [color=X], [size=X], [font=X], [url] 

他のものはすべて削除する。

+1

どういうところですか? –

+0

@Rafe、私は*彼がBBコードクラスを探していると推測しています。 – Prisoner

答えて

1

PHPのbbcodeパーサー拡張を使用することをお勧めします。しかし、これは拡張機能がインストールされていることを意味します。正規表現を使ってこれを行うことができますが、間違いなく注意する必要があります。入れ子にされたタグは、regexが扱えるようになっているよりも多くの複雑さを追加します。あなたはコールバックを使って再帰的な正規表現の置き換えのようなものを使う必要があります。また、ユーザがタグを適切に入れ子にしたり、アンカーURLに二重引用符を入れたりすると、何が起きるかさえわかりません。

正規表現をbbコードに使用すると、通常、グライズの死を迎えることになります。

1

セキュリティを維持しながらユーザーがWebサイトをプログラミングできるという無限の複雑さに対処する代わりに、単純なUIでHTMLを包み込みます。あなたが私たちが投稿した答えの真上に見えるものに似ています。ボタンをクリック...太字...クリック...下線など...

0

BBcode、Media Wikiフォーマット、まっすぐなHTMLを使用して、特定の属性/値を持つ特定のタグのみを許可することができます。また、RTE(リッチテキストエディタ)を使用してユーザの作業を容易にすることができます

関連する問題