現在の文字の接続設定を考慮して、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);
?>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
