預防sql注入安全的函式

2021-08-25 18:14:34 字數 1670 閱讀 3065

預防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...