2012-01-25 3 views
18

私は、PHPのセキュリティのベストプラクティス、具体的にHTML Purifierライブラリを研究しています。HTML Purifierは、PHPプログラミングを保護することができないものは何ですか?

  1. まず、一般的な質問...私は私のサイトのセキュリティを強化するために、サードパーティのライブラリを使用してのアイデアを好きですが、私はいくつかのことについて困惑しています。.. HTML Purifierは、安全なPHPプログラミングを練習することはできませんか?私は、HTML清浄機を使用している場合は

  2. 、それは私が入力をフィルタリングし、出力をエスケープするためにPHPの関数を使用してのような一般的なセキュリティ対策をスキップしてもらう意味するのでしょうか?

  3. this questionの回答のうちの1つが、HTML浄化器がWYSIWYGエディタなどのHTMLタグを許可する要素にのみ必要であることを示唆しているようです。これは正しいです?

  4. は、誰もがHTML清浄機を使用してから、パフォーマンスの遅れに気づいていますか? This articleは、パフォーマンスの影響が考慮する価値があるように見えます。

  5. は非フレームワークのPHPアプリケーションでHTML清浄機を統合する上の任意の最新のチュートリアルはありますか?私が見つけたものはすべてoldまたはframework-specificです。

ちょうど私がこれを尋ねる前に、私の宿題をやったことを確認する...

  • This questionは、基本的に私のと同じですが、唯一の応答はちょうど別のベストプラクティスを一覧表示するには思われますアスカーは

  • This 'bountiful' questionは、HTML清浄機やHTML5についての素晴らしいリソースですが、基礎知識

  • を前提として言及するのを忘れてしまいました

    HTML清浄機のサイトでこのcomparison pageは、他のフィルタと比較し

+0

HTML Purifierの主な目的は、XSS攻撃を防止することです。特に、サイトがユーザーから何らかのコンテンツを取得する場合があります。安全なPHPプログラミングの定義は何ですか?それはXSSの防止を含んでいますか? – bertzzie

+0

XSS防止は、私が安全なPHPプログラミングをどのように定義するかの大きな部分です。フィルタリング/エスケープと、特にhtmlentities()のリベラルな使用によるXSSの予防をターゲットにしています。 HTML PurifierがXSSに焦点を当てているのは、何らかの形でhtmlentities()を置き換えているということですか、それとも私はまだその関数を使い続けますか? – cantera

答えて

18

ユーザーからの任意の入力を受け付けた場合の両極端がありますの詳細です:

  1. が無差別にHTMLエンティティにすべてを逃れるため、ユーザーは何も注入できません。これは100%安全ですが、ユーザーがない自由が太字テキストなどのために、たとえば、任意の HTMLを追加することができます。
  2. 出力は、ユーザーからそれを受け取ったコンテンツ。これにより、ユーザーは<b> 太字のテキスト </b >とすることができますが、意図的にまたは意図せずに、ユーザーが希望する他の形式でスクリプトを挿入したり混乱させたりすることもできます。

HTML清浄機は、ミドルアースを可能にする:ユーザーが一部 HTMLではなく、悪意のある HTMLを挿入することができます。それはもちろん面倒なことですが、HTML Purifierは数少ないライブラリの1つであると言われています。

これは、それが使用されるはずの唯一のものです。あなたの他のセキュリティ実践を落とさないでください。実際、私はMarkdown(Stackoverflowが使用する)のように、ユーザが入力をスタイルするために制御されたマークアップ言語のみを使用できるようにすることで、この問題全体を完全に回避します。

+0

偉大な応答。明確にするために、HTML浄化装置を使用する唯一の理由は「HTMLホワイトリスト」だと言っていますか?もしそうなら、おそらく私のためではないでしょう - 私は主に、HTMLコードが決して受け入れられないフォーム入力を扱います。 HPの焦点がそれほど狭い場合、HPのWebサイトやWikipediaのエントリーで明らかにすべきだと思われる。 – cantera

+2

はい、そうです。それはまた、WebサイトIMOでかなり明示されています。 'HTML Purifierは、PHPで書かれた標準準拠のHTMLフィルタライブラリです。 HTML Purifierは、徹底的に監査された、安全で容認されたホワイトリストを使用して、すべての悪質なコード(XSSとして知られている)を削除するだけでなく、... ':-P – deceze

+0

Zendcastsのチュートリアルを見て、ほとんどのWebサイト。あなたが投稿したスニペットを再読した後でさえ、私はまだそれを「全目的の清浄器」と解釈します。明確化のためにありがとう。 – cantera

関連する問題