変数をフィルタリングおよびサニタイズするために PHP を使用filter_var()
して提供することはベスト プラクティスと見なされますか、それともより良いオプションはありますか?sanitize_var()
ありがとうございました。
変数をフィルタリングおよびサニタイズするために PHP を使用filter_var()
して提供することはベスト プラクティスと見なされますか、それともより良いオプションはありますか?sanitize_var()
ありがとうございました。
私は常に次のマントラを考慮します...「ユーザー入力を信頼しない」ctype_alpha、ctype_alnumは検証にも適しています。また、クライアント側も検証することを忘れないでください(javascript検証)。これにより、サーバーの負荷も軽減されます。
フォームからの入力を検証してみましょう。
最初に行う必要があるのは、探している入力データが存在することを確認することです。
次に、filter_input() 関数を使用して入力データをフィルタリングします。
以下の例では、入力変数「email」が PHP ページに送信されます。
HTMLフィルタリング/クリーンアップ用のHTML Purifierについて言及したいと思います。
一般的な検証 (数値、日付、その他の値) については、たくさんのライブラリがあり、組み込み関数もあります。最も適切なものを選択するのはあなた次第ですが、既に Zend Framework を使用している場合は、 Zend_Validateについて言及したいと思います。 .
HTML5を使用してクライアント側の検証を使用してから、サーバー側を使用するのが最善だと思います。PHP には、文字列をフィルタリングする FILTER_SANITIZE_STRING (検証する必要はありませんが) のような関数があり、正規表現を使用してメールを手動で検証するのではなく、FILTER_VALIDATE_EMAIL を使用できます。文字数などの制限もご利用いただけます。
概念的な例...
if form is submitted
if 'name' is not empty
create a variable that equals filter_var($_POST['name'], FILTER_SANITIZE_STRING)
if 'name' is empty then set echo an error message
if 'email is not empty
create a variable that equals filter_var($_POST['email'], FILTER_SANITIZE_STRING)
// then you can validate email
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
error message
// do this for other variables
if there's not error
send email and or a thank you message
//FORM here