0

重複の可能性:
PHPでSQLインジェクションを防ぐための最良の方法は?

phpサイトの私のhtmlWebフォームは、クライアント側からデータを取得し、それをmysqlデータベースに配置します。データをmysqlに保存する前にデータをサニタイズするために必要な手順を考えていました。

このサニタイズをPHPを使用して実行し、Mysqlに挿入する必要があると仮定して、すべての処理が必要なことを教えてください。

特殊なケースとして、一般的なサニタイズとは別に、データベースに入れる前に、すべての特殊文字とスペースを削除し、すべての文字を小文字に変換したいと思います。これを行うために私が見る必要がある関数は何ですか?

私はphpにまったく慣れていません。

ありがとう。

4

2 に答える 2

4

1.引用符をエスケープする mysqli_real_escape_string() または mysql_real_escape_string()

2. 他のフォームデータに php filter_input を使用する

$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);

PHPマニュアルには他のオプションがあります ここにリンクがあります

http://php.net/manual/en/function.filter-input.php

http://www.php.net/manual/en/filter.filters.sanitize.php

于 2012-10-17T17:51:48.250 に答える
3

まずmysqli_real_escape_string()、文字列内の引用符をエスケープする which を使用して入力をサニタイズします。

strtolower()文字を小文字に変換するために使用できます。

htmlspeiclachars()特殊文字を HTML エンティティに変換するために使用します

正規表現を使用して空白を削除するpreg_replace( '/\s+/', ' ', $whatever );

特殊文字を削除したい場合は、preg_replace('#[^\w()/.%\-&]#',"",$whatever);正規表現を使用できます。(ソース

その他のサニタイズフィルターのリファレンスはこちら

そして最後になりましたが、あなたは初心者なので、ドキュメントを参照することをお勧めします

于 2012-10-17T17:52:27.753 に答える