PHP+Mysql SQL注入防止方法
5611 ワード
この文章はPHP+Mysql SQL注入防止の方法について紹介しています。一定の参考価値があります。今共有します。必要な友達がいたら参考にしてください。
方法1:
mysqlリアル.エスケープstring-SQL文で使用される文字列の特殊文字を意味し、接続されている現在の文字セットを考慮します。
方法二:
magic_を開くquot tesgpcはSQL注入を防止する。php.iniにはmagic_という設定があります。quot tesgpc=Offというデフォルトはクローズされていますが、開いたら自動的にsqlのクエリに対して変換を行うためにユーザーを提出します。例えば'を\'に変更するなど、sql注射を防ぐために重要な役割があります。
magic_ならquot tesgpc=Offは、addslashes()関数を使います。
方法三:
ユーザー定義関数
以上がPHP+Mysql SQL注入防止方法の詳細です。
PHPに関する知識をもっと知りたいです。私のコラムPHP zhuan.zhihu.comに注目してください。
方法1:
mysqlリアル.エスケープstring-SQL文で使用される文字列の特殊文字を意味し、接続されている現在の文字セットを考慮します。
$sql = "select count(*) as ctr from users where username
='".mysql_real_escape_string($username)."' and
password='". mysql_real_escape_string($pw)."' limit 1";
方法二:
magic_を開くquot tesgpcはSQL注入を防止する。php.iniにはmagic_という設定があります。quot tesgpc=Offというデフォルトはクローズされていますが、開いたら自動的にsqlのクエリに対して変換を行うためにユーザーを提出します。例えば'を\'に変更するなど、sql注射を防ぐために重要な役割があります。
magic_ならquot tesgpc=Offは、addslashes()関数を使います。
方法三:
ユーザー定義関数
/**
* sql
* author: xiaochuan
* @param: mixed $value
*/
function check_param($value=null) {
# select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile
$str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';
if(!$value) {
exit(' !');
}elseif(eregi($str, $value)) {
exit(' !');
}
return true;
}
/**
* sql
* author: xiaochuan
* @param: mixed $value
*/
function str_check( $value ) {
if(!get_magic_quotes_gpc()) {
//
$value = addslashes($value);
}
$value = str_replace("_", "\_", $value);
$value = str_replace("%", "\%", $value);
return $value;
}
/**
* sql
* author: xiaochuan
* @param: mixed $value
*/
function post_check($value) {
if(!get_magic_quotes_gpc()) {
//
$value = addslashes($value);
}
$value = str_replace("_", "\_", $value);
$value = str_replace("%", "\%", $value);
$value = nl2br($value);
$value = htmlspecialchars($value);
return $value;
}
以上がPHP+Mysql SQL注入防止方法の詳細です。
PHPに関する知識をもっと知りたいです。私のコラムPHP zhuan.zhihu.comに注目してください。