データのセキュリティとインジェクションを防ぐために、最初は $_GET で取得した文字列をフィルタリングする必要があります。後でフィルタリング関数を作成しました。
PHP チュートリアルに付属するフィルター関数を見てみましょう。そこで、addslashes を皆さんにお勧めします。
addslashes() の使用例は、データベース チュートリアルにデータを入力する場合です。たとえば、O'reilly という名前を変更します
このようにして、余分な を挿入せずにデータベースにデータを入れることができます。 PHP ディレクティブ magic_quotes_sybase が
の場合
オンに設定すると、' を挿入するときに ' がエスケープされることを意味します。
例:
MySQL チュートリアルと PHP には、文字の問題を処理できる多くの関数が付属しています。ここではよく使用される関数をいくつか紹介します。 psチュートリアル: php6はmagic_quotes_gpcをサポートしていないため、以下のことはすべて仮定です
magic_quotes_gpc=off (php6 でどんな新しいものが出てくるかわかりません...)
mysql_real_escape_string()
定義: 関数は、SQL ステートメントで使用される文字列内の特殊文字をエスケープします。
構文: mysql_real_escape_string(string,connection)
説明: この関数は文字列内の特殊文字をエスケープし、接続の現在の文字セットを考慮するため、安全に使用できます
mysql_query()。
mysql_query()。
何が起こるか:
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}
$sql = "ユーザーから * を選択
かつパスワード='{$_POST['pwd']}'";
mysql_query($sql);
//ユーザー名とパスワードをチェックしません
$_POST['ユーザー'] = 'ジョン';
$_POST['pwd'] = "' OR ''='";
// いくつかのコード...
mysql_close($con);
?>SQL クエリは次のようになります:
ユーザーから*を選択
ログイン
addSlashes()
定義:addslashes() 関数は、指定された定義済み文字の前にバックスラッシュを追加します。
構文: addslashes(string)
注: デフォルトでは、PHP ディレクティブ magic_quotes_gpc はすべての GET、POST、COOKIE に対してオンになっています
データは自動的にaddslashes()を実行します。 magic_quotes_gpc によってエスケープされた文字列には使用しないでください
addslashes()、これは二重レベルのエスケープを引き起こすためです。このような状況に遭遇した場合は、関数を使用できます
get_magic_quotes_gpc() を使用して検出します。
サンプルコードが長すぎるため、機能説明のリンクを貼っておきます
関連機能
$str = "あなたの名前はオライリーですか?";
// 出力: あなたの名前はオライリーですか?
?>
StripSlashes() はバックスラッシュ文字を削除します
tripslashes() 関数は、addslashes() 関数によって追加されたバックスラッシュを削除します。
文法
エコー・ストリップスラッシュ(「ジョン・アダムスって誰?」);
?>
http://www.bkjia.com/PHPjc/629711.html