ホームページ > バックエンド開発 > PHPチュートリアル > php get_magic_quotes_gpc() 関数の使い方の概要_PHP チュートリアル

php get_magic_quotes_gpc() 関数の使い方の概要_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-20 11:03:28
オリジナル
952 人が閲覧しました

PHP の magic_quotes_gpc 関数の役割は、ユーザーによって要求されたデータ (post、get、cookie データなど) を判断して解析することです。エスケープ文字 "" を追加して、これらのデータがプログラム (特に、データベース ステートメントに特殊文字が含まれているため、致命的なエラーが発生します。 ​

magic_quotes_gpc=Onの場合、入力データに

がある場合

一重引用符 (')、二重引用符 (")、バックスラッシュ ()、NUL (NULL 文字) などの文字はバックスラッシュで囲まれます。これらのエスケープが必要です。このオプションがオフの場合、addslashes 関数を呼び出す必要があります。文字列にエスケープを追加します

このオプションはオンでなければならないという矛盾があるため、ユーザーが設定することもできます。このオプションは PHP6 では削除されており、すべてのプログラミングは magic_quotes_gpc=Off で実行する必要があります。このような環境では、ユーザーのデータがエスケープされない場合、その結果はプログラム エラーだけではありません。これにより、データベース インジェクション攻撃のリスクが発生します。したがって、今後は、サーバーが PHP6 に更新されなければならず、プログラムが正しく動作しなくなる可能性があるため、今後はこの設定がオンになっていることに依存しないでください。

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

magic_quotes_gpc=On の場合、関数 get_magic_quotes_gpc() は 1 を返します

magic_quotes_gpc=Off の場合、関数 get_magic_quotes_gpc() は 0 を返します

したがって、この get_magic_quotes_gpc() 関数の機能は、環境変数 magic_quotes_gpc の値を取得することであることがわかります。 PHP6 では、magic_quotes_gpc オプションが削除されたため、この関数は PHP6 には存在しないと思います。


PHP は、addslashes 関数を使用する決定を容易にするために get_magic_quotes_gpc 関数が有効になっているかどうかを判断します。

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

関数 SQLString($c, $t){
$c=(!get_magic_quotes_gpc())?addslashes($c):​​$c;
スイッチ($t){
ケース「テキスト」:
$c=($c!='')?"'".$c."'":'NULL';
休憩
ケース「検索」:
$c="'%%".$c."%%'";
休憩
ケース 'int':
$c=($c!='')?intval($c):​​'0';
休憩
}
$c を返します;
}

データベース攻撃を防ぐ正しい方法


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445286.html技術記事 PHP の magic_quotes_gpc 関数の役割は、ユーザーによって要求されたデータ (post、get、Cookie データなど) を判断して解析し、エスケープ文字を追加して、これらのデータが処理を引き起こさないようにすることです...
コードは次のとおりです コードをコピー

関数 check_input($value)

{

//スラッシュを削除します

if (get_magic_quotes_gpc())

{

$value = ストリップスラッシュ($value);

}

//数値でない場合は引用符を追加してください

if (!is_numeric($value))

{

$value = “‘” .mysql_real_escape_string($value) .

}

$value を返す;

}

$con = mysql_connect(“localhost”, “hello”, “321″);

if (!$con)

{

die(‘接続できませんでした: ‘ .mysql_error());

}

// 安全な SQL を作成する

$user = check_input($_POST['user']);

$pwd = check_input($_POST['pwd']);

$sql = “SELECT * FROM users WHERE

ユーザー=$user AND パスワード=$pwd”;

mysql_query($sql);

mysql_close($con);

?>

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート