| | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
mysql_real_escape_string(PHP 4 >= 4.3.0, PHP 5) mysql_real_escape_string — SQL 文中で用いる文字列の特殊文字をエスケープする 説明
string mysql_real_escape_string
( string $unescaped_string
[, resource $link_identifier
] )
現在の接続の文字セットで unescaped_string の特殊文字をエスケープし、 mysql_query() で安全に利用できる形式に変換します。バイナリデータを挿入しようとしている場合、 必ずこの関数を利用しなければなりません。 mysql_real_escape_string() は、MySQL のライブラリ関数 mysql_real_escape_string をコールしています。 これは以下の文字について先頭にバックスラッシュを付加します。 \x00, \n, \r, \, ', " そして \x1a. データの安全性を確保するため、MySQL へクエリを送信する場合には (わずかな例外を除いて)常にこの関数を用いなければなりません。 パラメータ
返り値成功した場合にエスケープ後の文字列、失敗した場合に FALSE を返します。 例
例1 単純な mysql_real_escape_string() の例
<?php
例2 SQL インジェクション攻撃の例
<?phpMySQL に送信されたクエリは次のとおり: SELECT * FROM users WHERE user='aidan' AND password='' OR ''='' これでは、パスワードを知らなくても誰でもログインできてしまいます。 注意
参考
|
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「mysql_real_escape_string - SQL 文中で用いる文字列の特殊文字をエスケープする」をGoogle検索
|