2012-02-12 13 views
6

私はユーザーが記事を書くことができるテキストエリアを持っています。記事には、テキスト(太字とイタリック)、リンク、およびYouTubeの動画を含めることができます。これらの特定のhtmlタグを許可し、安全なxss防止コードを投稿するにはどうすればよいですか?特定のhtmlタグを許可する方法は?

答えて

11

私はあなただけ

  • 有効であり、唯一のタグが含まれており、私がすべき


    を許可するように選びだしまし属性をHTML

    • を保つことを保証するために、HTMLPurifierを使用しますPHPがstrip_tags()関数を提供していると付け加えますが、それほど良くはありません。(引用)

      予想以上
      部分

      strip_tags()ので、実際にHTMLを検証していない、または 壊れたタグが複数のテキスト/データの削除につながることができます。

      この機能は 他のユーザーに表示されますことを、テキストを投稿する際にいたずらユーザーは行為を行う可能性があります スタイルとのonmouseoverなど、あなたがallowable_tagsを使用できるように タグ、上の任意の属性を変更しません。

    +0

    +1の引用符strip_tags()notes –

    +0

    Thx! htmlpurifierのように見える方法です。ただ明確にする。 htmlpurifierは、xss、sql injectionsおよびその他の危険なコードを防止しますか? – Michael

    +1

    私はこれを数回使って、ユーザー入力をきれいにして、選択したタグだけが含まれていることを確認しました。許可されたタグ/属性を慎重に選択すると、XSSが防止されます。しかし、SQLインジェクションについては何もしません。これらはSQLクエリーに何を入れるのが安全であるかを確認することで解決するもう一つの問題です(整数は整数でなければならず、文字列は適切にエスケープする必要があります。準備された文を使用する)* –

    1

    実際のXSS保護をお探しの場合は、HTMLPurifierを使用することをお勧めします。それをすることは不可能ではないにしてもかなり難しいです。そして、間違い(/穴)があることに縛られています。

    関連する問題