2012-03-12 6 views
0

フォームデータを取得し、データベース攻撃を防ぐ最も安全な方法でmysqlデータベースに書き込むための最善の方法を明確にするために、htmlタグを取り除くための質問がありました。以下、私はこれを行うform_writeと呼ばれる関数を持っていますし、各ポストフォーム変数を宣言するときに私のコードで使用します。誰もが見て、私は正しい軌道に乗ってか、これを行うことには良い方法がある場合は午前なら、私に教えてできればhtmlフォームをmysqlデータベースに投稿してデータベース攻撃を避ける

function form_write($string) 
    { 
    return mysql_real_escape_string(strip_html_tags($string)); 
    } 

$name = form_write($_POST['name']); 
$email = form_write($_POST['email']); 
...etc 

は感謝されます。

おかげ

答えて

0

はい、タグを除去し、入力をエスケープすることは、安全になります。後で入力変数に追加の検証レイヤーを追加することができます。電子メールを検証するたとえば、あなたが使用することができます。

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
    throw new Exception('Invalid e-mail address'); 
} 

PHPは、フィルタをたくさん持っている、filter_varlist of filtersを参照してください。

+0

追加情報ありがとうございます。私は検証するために例外を使用していない - ちょうど私自身のPHPコード。私はそれらをチェックします –

+0

このスニペットの重要な部分は、入力を検証するfilter_var()関数です。例外は単にエラーを発生させる方法です。 –

+0

右、それを指摘してくれてありがとう –

0

はいstrip_tags()が良好であり、また、あなたが入力したメールアドレスが実際に電子メールアドレスであるかどうかを一致させるためにするpreg_match()を使用することができます。 trim() [始まりと終わりに空白をトリムする]を使用することをお勧めします。

関数form_write($文字列)

{

戻りmysql_real_escape_stringの(トリム(strip_tags($文字列)))。

}

$名= form_write($ _ POST [ '名前'])。

私はここに新しいです、あなたは私の答えが良いと思います。投票していただければ幸いです。

よろしくお願いいたします。

関連する問題