私は最近、サニテーションと検証のための PHP フィルター関数を発見しました。
私はそれらを正しく使用しているかどうか疑問に思っていて、それらに関する多くの情報、特にフラグを見つけるのに苦労しています。
たとえば、メールアドレスのサニタイズ機能があります。
function sanitize_email($var){
$var = trim($var);
$var = filter_var($var,FILTER_UNSAFE_RAW);
$var = filter_var($var,FILTER_SANITIZE_EMAIL);
$var = filter_var($var,FILTER_VALIDATE_EMAIL);
return $var;
}
私の質問は次のとおりですか?
フィルターを組み合わせて使用する必要がありますか? または、FILTER_VALIDATE_EMAIL だけでフォーム フィールドを保護するのに十分ですか?
フラグを使用しない限り UNSAFE_RAW は機能しないことを読みましたが、フラグを使用した使用を示す良い例が見つかりません。
このようなテキストフィールドをサニタイズするための同様の機能もあります...
function sanitize_text($var){
$var = trim($var);
$var = htmlspecialchars($var);
$var = filter_var($var,FILTER_SANITIZE_STRING);
$var = filter_var($var,FILTER_SANITIZE_MAGIC_QUOTES);
return $var;
}
繰り返しますが、この機能を使用してすべてを行う必要があるかどうかはわかりません。
入力を安全にすることに関して、この機能を改善するにはどうすればよいですか?