htmlspecialchars()
XSS攻撃を防ぐ機能を使用しています。以下からデータベースにデータを保存するためのより良い方法は何かについて疑問があります。
方法 1 :関数を適用した後、ユーザー入力値を格納しますhtmlspecialchars()
。これを使用すると、ユーザー入力"<script>"
は「<script>」になります。.
方法 2 :ユーザー入力をそのままhtmlspecialchars()
保存し、データを取得してページに表示しながらメソッドを適用します。
私の疑問の理由は、メソッド 1 を使用するとデータベースにオーバーヘッドが発生するのに対し、メソッド 2 を使用すると、PHP から要求されたときにデータを何度も変換する必要があると考えているからです。なので、どちらが良いかわかりません。
詳細についてhtmlspecialchars($val, ENT_QUOTES, "UTF-8")
は、' と " も変換するように使用しています。
私の疑問を解消するのを手伝ってください。できれば解説も。
ありがとう。