検索
ホームページphp教程php手册php mysql_real_escape_string関数の使用法と例tutorial_phpの基本

現在の文字の接続設定を考慮して、unescaped_string 内の特殊文字をエスケープして、mysql_query() 内で安全に配置できるようにします。バイナリ データを挿入する場合は、この関数を使用する必要があります。

次の文字が影響を受けます:

  • \x00
  • \n
  • \r
  • \
  • '
  • "
  • \x1a

成功した場合、この関数はエスケープされた文字列を返します。失敗した場合は false を返します。

構文

mysql_real_escape_string(string,connection)
パラメータ 説明
文字列 必須。エスケープする文字列を指定します。
接続 オプション。 MySQL 接続を指定します。指定しない場合は、以前の接続が使用されます。

説明

この関数は文字列内の特殊文字をエスケープし、接続の現在の文字セットを考慮するため、mysql_query() で安全に使用できます。

ヒントとメモ

ヒント: この機能を使用すると、データベース攻撃を防ぐことができます。

例 1

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

$con = mysql_connect( "localhost", "hello", "321");
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}

//ユーザー名とパスワードのコードを取得します

//SQL で使用するためにユーザー名とパスワードをエスケープします
$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);

$sql = "SELECT * FROM users WHERE
user='" . $user . "' AND passwd='" . $pwd . "'"

//その他のコード

mysql_close($con);
?>

例 2
データベース攻撃。この例は、mysql_real_escape_string() 関数をユーザー名とパスワードに適用しない場合に何が起こるかを示しています。

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

$con = mysql_connect( "localhost", "hello", "321");
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}

$sql = "SELECT * FROM ユーザー
WHERE user='{$_POST['user']}'
AND パスワード='{$_POST['pwd']}'";
mysql_query($sql);

//ユーザー名とパスワードをチェックしません
//ユーザーが入力したものは何でも構いません。例:
$_POST['user'] = 'john';
$_POST['pwd '] = "' OR ''='";

//コード...

mysql_close($con);
?>

SQL クエリは次のようになります。

SELECT * FROM users
WHERE user='john' AND passwd='' OR ''='' これは、有効なパスワードを入力しなくても、どのユーザーでもログインできることを意味します。

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

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

function check_input ($value )
{
// スラッシュを削除します
if (get_magic_quotes_gpc())
{
$value =tripslashes($value);
}
// If数値ではありません 次に、引用符を追加します。
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 * ユーザーから WHERE
user=$user AND パスワード=$pwd";

mysql_query($sql);

mysql_close($con);
?>

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター