私はPDOをユーザーの入力に使用していますが、今はMySQLデータベースのコンテンツを表示するときにPDOを使用していません(SQLコマンドでは古い方法です)。PHP PDOを使用しているときにユーザー入力と出力をサニタイズ/フィルタリングする必要がありますか?
MySQLデータベースにデータを挿入するときにユーザーからの入力をフィルタリングする必要がありますか?
出力を消毒する方法がある場合は、出力をサニタイズする最良の方法は何ですか? htmlspecialchars()
を使うだけでいいですか、それともstrip_tags()
などを使う必要がありますか?
私はプレースホルダと準備文を使用しています。
ありがとうございます。
文字列をエスケープして100%安全なものにしたい場合 – 2by
これらの関数はそれぞれ安全ですが、必要なものを使用してください: 'strip_tags'はHTMLコードを取り除きます。反対に' htmlspecialchars'それらは(まだ彼らはdispayedされますが、ブラウザによって解釈されません)。 'htmlentities'はàéèのような文字もエンコードします。あなたのアプリケーションがUTF-8で動いているならば、単に 'htmlspecialchars'を使ってください。 を参照してください。http://stackoverflow.com/questions/7232793/should-i-use-both-striptags-and-htmlspecialchars-to-prevent-xss – Claaker
htmlspecialchars()の代わりにhtmlentities()を使用してください。 –