ホームページ >バックエンド開発 >PHPチュートリアル >PHPマジッククオートの徹底解説_PHPチュートリアル

PHPマジッククオートの徹底解説_PHPチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-21 15:06:241205ブラウズ

特にマニュアルを確認しました。php のマジッククォートについては、magic_quotes_gpc、magic_quotes_sybase、magic_quote_runtime の設定がマニュアルにあります。これらの機能は php5.3 から設定されています。非推奨であるため、これらを使用せず、php.ini でオフにすることを強くお勧めします。

php.ini中magic quotes设置

これらの関数の目的は、データをエスケープすることです。 SQL インジェクションを防ぐ場合、多くの人は次のように書きます:

コードをコピー コードは次のとおりです:

if(!get_magic_quotes_gpc()){
$post=addslashes($post);
}

if これらをオンにすると、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NUL (ヌル文字) が自動的にエスケープされます。実際、これは addslashes 関数を呼び出すのと同じです。これはあまり良くないと思われるかもしれませんが、セキュリティは高くなりますが、さらに、gpc ($_GET、$_POST、$_COOKIE) 上のすべてのデータをエスケープする必要がありますか? PHP Diandiantong (phpddt.com) のマニュアルでマジック クオートの詳細が説明されています:

1.magic_quotes_gpc

magic_quotes_gpc これは、GPC ($_GET、$_POST、 $_COOKIE) (PHP4 には $_ENV も含まれます) 有効にすると、単一引用符、二重引用符、バックスラッシュ、および NUL がすべてバックスラッシュによって自動的にエスケープされます。 ''、ただし、二重引用符、バックスラッシュ、NUL は影響を受けず、エスケープもされません。

magic_quotes_gpc教程

2.magic_quote_runtime

magic_quote_runtime このオプションをオンにすると、外部データ (データベース、テキスト) を返す多くの関数がバックスラッシュでエスケープされます。 magic_quote_sybase も有効になっている場合、単一引用符 (一重引用符) のみが単一引用符でエスケープされます。

magic_quote_runtime教程

3.magic_quotes_sybase

magic_quotes_sybase このオプションがオンで、magic_quotes_gpc、magic_quotes_runtime がオンの場合、一重引用符はバックスラッシュでエスケープされるのではなく、一重引用符で転送されます。同時に、この設定は、magic_quotes_gpc の設定を完全にオーバーライドします。magic_quotes_gpc が on に設定されている場合でも、二重引用符 "、バックスラッシュ、NUL はエスケープされません。

magic_quotes_sybase教程

http://www.bkjia.com/PHPjc/327609.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327609.html技術記事具体的にマニュアルを確認してみたところ、phpのマジッククォートに関しては、magic_quotes_gpc、magic_quotes_sybase、magic_quote_runtimeという設定がphp.iniで設定されています
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。