預防sql注入安全的函式
定義和用法
mysql_real_escape_string() 函式轉義 sql 語句中使用的字串中的特殊字元。
下列字元受影響:
/x00
/n /r
/ '
" /x1a
如果成功,則該函式返回被轉義的字串。如果失敗,則返回 false。
語法mysql_real_escape_string(string,connection)引數 描述
string 必需。規定要轉義的字串。
connection 可選。規定 mysql 連線。如果未規定,則使用上乙個連線。
// 獲得使用者名稱和密碼的**
// 轉義使用者名稱和密碼,以便在 sql 中使用
$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);
$sql = "select * from users where
user='" . $user . "' and password='" . $pwd . "'"
// 更多**
mysql_close($con);
?>例子 2
資料庫攻擊。本例演示如果我們不對使用者名稱和密碼應用 mysql_real_escape_string() 函式會發生什麼:
<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
$sql = "select * from users
where user=''
and password=''";
mysql_query($sql);
// 不檢查使用者名稱和密碼
// 可以是使用者輸入的任何內容,比如:
$_post['user'] = 'john';
$_post['pwd'] = "' or ''='";
// 一些**...
mysql_close($con);
?>那麼 sql 查詢會成為這樣:
select * from users
where user='john' and password='' or ''=''這意味著任何使用者無需輸入合法的密碼即可登陸。
例子 3
預防資料庫攻擊的正確做法:
<?php
function check_input($value)
// 如果不是數字則加引號
if (!is_numeric($value))
return $value;
}$con = mysql_connect("localhost", "hello", "321");
if (!$con)
// 進行安全的 sql
$user = check_input($_post['user']);
$pwd = check_input($_post['pwd']);
$sql = "select * from users where
user=$user and password=$pwd";
mysql_query($sql);
mysql_close($con);
?>
預防SQL注入漏洞函式
預防sql注入漏洞函式.僅僅代表我的觀點.不怕見笑.有問題請大家指教 我想如果你是牛人,那這個已經不是值得你看的內容,只是覺得對與很多剛入門的asp程式設計師來說還是有點實際意義,所以不怕被大家笑話,寫了貼在這裡 function checkstr str if isnull str then ch...
預防SQL注入漏洞函式
預防sql注入漏洞函式.僅僅代表我的觀點.不怕見笑.有問題請大家指教 我想如果你是牛人,那這個已經不是值得你看的內容,只是覺得對與很多剛入門的asp程式設計師來說還是有點實際意義,所以不怕被大家笑話,寫了貼在這裡 function checkstr str if isnull str then ch...
sql注入預防
sql注入即是指web應用程式對使用者輸入資料的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的sql語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊。1.簡單又有效的方法 prepar...