2011-09-19 8 views
4

セキュリティは常に最初に考慮すべき事項ですか?私はこの質問がとても重要だと思うので、誰かが以前に尋ねてきたはずだったが、私は検索結果で満足のいく答えを見つけられなかった。ユーザの入力と出力を安全かつ簡便に衛生的にする方法は何ですか

ユーザーの記事の内容をデータベースに保存して安全に出力する必要があります。しかし、これを行うには非常に多くの方法があります。 filter_var()strip_tags()mysql_real_escape_string()stripslashes() ...などでこれを行うことができます。私は使用するものを選択することはできません。そのうちの1つを使用するのに十分安全かどうかを確認することはできません。

入力と出力をサニタイズするためのベストプラクティスは何ですか?

+4

これについて考えると、データをエスケープする正しい方法は1つだけです。しかし、これまでに何度も尋ねられました(そして答えられました)。ここにある[私の答えの一つです](http://stackoverflow.com/questions/6475225/how-to-cleanse-a-string-to-avoid-sql-injection-and-the-most-common-types-of -attac/6475262#6475262)を参照してください。 –

+0

「関連する」セクションに重複がたくさんある –

答えて

11

シンプル:入力をフィルタしません。エスケープ出力。

を使用します。非常に簡単に言えばPHP escaping input variables

2

を「出力コンテキスト用/エンコードをエスケープ」。それがすべてです。

mysqlに何かを保存したいときは、mysql文を作ります。コンテキスト:mysqlステートメントあなたのために用意されているプリペアドステートメントを使用するか、PDOアダプタインスタンスを使用してデータを引用するか、mysql_real_escape_string(最後の手段として)を使用して、mysqlステートメントのエンコード/エスケープを行います。

HTMLページに何かを出力する場合、Context:html data。 htmlspecialcharsでHTMLをエンコードしますが、htmlspecialcharsはhtml属性には十分ではないことに注意してください。これは、両方の種類の引用符と同様にスペースもこのコンテキストでエンコードする必要があるためです。

cssとjavascriptはそれぞれ独自のコンテキストであることを覚えておいてください.HTMLのように扱わないでください。

関連する問題