ホームページ  >  記事  >  バックエンド開発  >  addlashes と mysql_real_escape_string_PHP チュートリアル

addlashes と mysql_real_escape_string_PHP チュートリアル

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

この記事では、ユーザーが送信したデータを整理および処理するために mysql_real_escape_string を使用する場合と、addslashes および mysql_escape_string という 3 つの類似した関数を使用する場合の違いを紹介します。エスケープされたデータはデータベースに直接挿入できます。

addslashes と mysql_real_escape_string の違いを非常によく説明していますが、多くの国内の PHP プログラマーは依然として SQL インジェクションを防ぐために addslashes に依存していますが (私も含めて)、それでも中国語での SQL インジェクションを防ぐためのチェックを強化することをお勧めします。 addslashes の問題は、ハッカーが 0xbf27 を使用して一重引用符を置き換えることができるのに対し、addslashes は 0xbf27 を 0xbf5c27 に変更するだけで、有効なマルチバイト文字になる 0xbf5c は依然として一重引用符とみなされ、そのため addslashes は正常にインターセプトできないことです。

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

さらに、PHP マニュアルの get_magic_quotes_gpc の例:
if (!get_magic_quotes_gpc()) {
$lastname =addslashes($_POST['lastname']);
} else {
$lastname = $_POST[' lastname'];
}
magic_quotes_gpc がすでに開いているときに $_POST['lastname'] を確認するのが最善です。

2 つの関数 mysql_real_escape_string と mysql_escape_string の違いについて話しましょう:
mysql_real_escape_string は (PHP 4 >= 4.3.0、PHP 5) で使用する必要があります。それ以外の場合は、mysql_escape_string のみを使用できます。 2 つの違いは次のとおりです。
mysql_real_escape_string は接続の現在の文字セットを考慮しますが、mysql_escape_string は考慮しません。


要約すると:

addslashes() は強制的な追加です。

mysql_real_escape_string() は文字セットを決定しますが、PHP バージョンの要件があります

mysql_escape_string は、接続の現在の文字セットを考慮しません。

http://www.bkjia.com/PHPjc/508333.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508333.html技術記事この記事では、ユーザーが送信したデータの並べ替えと処理に mysql_real_escape_string を使用する場合と、addlashes および mysql_escape_string という 3 つの類似した関数を使用する場合の違いを紹介します。逃げました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。