18

免責事項

これは、データベース入力をエスケープする必要があるかどうかの問題ではありません。これは、タイトルの 3 つの機能の技術的な違いを厳密に見たものです。

との違いについて議論するこの質問があります。しかし、実際には議論されておらず、私が Google で見つけた情報は、「エコーされる前にユーザー入力をエスケープするようにしてください!」という行に沿ったものでした。htmlentities()htmlspecialchars()filter_var()

私の質問は次のとおりです。

  • htmlspecialchars()と が の上でhtmlentities()一般的に使用されるのはなぜfilter_var()ですか?
  • 使用によるパフォーマンスの低下はありfilter_var()ますか?
  • filter_var()他の 2 つのオプションほど安全ではありませんか?
  • ユーザー入力をエンコードする前に、以下を使用しない理由は他にありますか?echod

filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);

4

1 に答える 1

11

私の推測(採用の欠如について)は、単にFilter拡張機能がv5.2以降デフォルトでのみ有効になっているのに対し、html*メソッドはもっと長くなっているからだと思います。

于 2011-08-05T20:47:40.223 に答える