ホームページ >バックエンド開発 >PHPチュートリアル >addlashes、mysql_real_escape_string、mysql_escape_string の紹介_PHP チュートリアル

addlashes、mysql_real_escape_string、mysql_escape_string の紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:15:341128ブラウズ

この記事では、php における addlashes()、mysql_real_escape_string()、mysql_escape_string() の使用法と違いについて簡単に紹介します。興味のある方は参照してください。

私はこれまでこの点にまったく注目したことがありませんでした。私が書いているときは、非常に単純な関数 addslashes() を使用しました。この関数は、指定された定義済み文字の前にバックスラッシュを追加します。

これらの事前定義された文字は次のとおりです:

•一重引用符 (')
•二重引用符 (")
•バックスラッシュ ()
•NULL

多くの国内 PHP プログラマは依然として SQL インジェクションを防ぐために addslashes に依存していますが、中国語での SQL インジェクションを防ぐために全員がチェックを強化することをお勧めします。 addslashes の問題は、ハッカーが単一引用符の代わりに 0xbf27 を使用できることですが、addslashes は 0xbf27 を 0xbf5c27 に変更するだけで、有効なマルチバイト文字となる 0xbf5c は依然として単一引用符とみなされ、そのため addslashes は正常にインターセプトできません。
コードは次のとおりです コードをコピー

関数 as_array(&$arr_r)
{
foreach ($arr_r as &$val) is_array($val) ? as_array($val):$val=addslashes($val); 設定を解除($val); }

as_array($_POST); ?>


もちろん、addslashes は、マルチバイト文字の処理に使用されます。mysql_real_escape_string を使用します。

さらに、PHP マニュアルの get_magic_quotes_gpc の例:

コードは次のとおりですコードをコピーif (!get_magic_quotes_gpc()) { $lastname = addedlashes($_POST[‘lastname’]);magic_quotes_gpc がすでに開いているときに $_POST['lastname'] を確認するのが最善です。
} その他 {

$lastname = $_POST[‘lastname’];
}


2 つの関数 mysql_real_escape_string と mysql_escape_string の違いについて話しましょう:

mysql_real_escape_string は (PHP 4 >= 4.3.0、PHP 5) でのみ使用できます。 mysql_escape_string (PHP 4 >= 4.0.3、PHP 5、注: このメソッドは PHP5.3 で非推奨になったため、推奨されません)、

// 説明: array_map() を使用して mysql_real_escape_string を呼び出し、配列をクリーンアップします

// 構成: http://www.bKjia.c0m

関数 mysqlClean($data)
{
return (is_array($data))?array_map('mysqlClean', $data):mysql_real_escape_string($data);
}
?>

2 つの違いは次のとおりです。mysql_real_escape_string は接続の現在の文字セットを考慮しますが、mysql_escape_string は考慮しません。

要約すると:

PHPコード

コードは次のとおりですコードをコピー 関数エスケープ($str){
If(function_exists('mysql_escape_string')){

return mysql_escape_string($str);
}elseif( function_exists(...real_escape...)){
//real_escape
}その他{
if(MAGIC_QUOTER....判断){
$str
を返す }その他{
return addlashes($str);
}
}
}


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628831.html技術記事この記事では、PHP におけるaddlashes()、mysql_real_escape_string()、mysql_escape_string()の使用法と違いについて簡単に紹介しますので、興味のある方は参考にしてください。 今までにない...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。