タイトルで述べたように、ユーザーが入力したデータをサニタイズするための htmlspecialchars() には非常に自信があります。しかし、電子メールのサニタイズには、FILTER_SANITIZE_EMAIL() の代わりに使用できますか? すでに FILTER_VALIDATE_EMAIL() を使用している場合
3 に答える
ユーザー入力で htmlspecialchars を使用することは、XSS 攻撃を防ぐ方法であり、データを保存するときではなく、出力するときに安全にする方法です。
ユーザーがこれを送信するとします。
<span onclick="alert('evil script')">something that seems normal</span>
ユーザーが送信したとおりにコンテンツを保存する必要があります。ただし、表示するときは、htmlspecialchars (またはhtmlentities ) を使用して一部の特殊文字をエンティティに変換し、ブラウザが解釈できないようにする必要があります。
フィルター拡張機能の関数の 1 つで使用されるFILTER_VALIDATE_EMAILフラグは、ユーザー データを検証する方法であり、ユーザー データを保存する前に実行する必要があるプロセスです。
xss 防止の詳細については、こちらを参照してください
FILTER_SANITIZE_EMAIL
文字列が電子メール アドレスであることを保証します。
htmlspecialchars
文字列を HTML に安全に挿入できるようにします。
それらは完全に異なるものであり、いかなる状況下でも互いに代替するものではありません.
Provided I have already used FILTER_VALIDATE_EMAIL
次に、すでに検証済みの場合、文字列に電子メール以外のものがどのように含まれるでしょうか。
検証が失敗した場合でも指定された電子メールを出力する場合はhtmlspecialchars()
、電子メール文字列で yes を使用するか、有効な電子メールではないことを通知する必要があります。