PHP+mysql防止SQL注入的方法小結(jié)
本文實例講述了PHP+mysql防止SQL注入的方法。分享給大家供大家參考,具體如下:
SQL注入
例:腳本邏輯
$sql = "SELECT * FROM user WHERE userid = $_GET[userid] ";
案例1:
案例2:
案例3:
監(jiān)控以下方法
SLEEP() — 一般的SQL盲注都會伴隨SLEEP()函數(shù)出現(xiàn),而且一般至少SLEEP 5秒以上
MID()
CHAR()
ORD()
SYSDATE()
SUBSTRING()
DATABASES()
SCHEMA()
USER()
VERSION()
CURRENT_USER()
LOAD_FILE()
OUTFILE/DUMPFILE
INFORMATION_SCHEMA
TABLE_NAME
fwrite()/fopen()/file_get_contents() — 這幾個是PHP文件操作函數(shù)
應對方法:
1.mysql_escape_string()
轉(zhuǎn)義特殊字符((PHP 4 >= 4.3.0, PHP 5))(mysql_real_escape_string必須先鏈接上數(shù)據(jù)庫,否則會報錯)
下列字符受影響:
\x00 //對應于ascii字符的NULL
\n //換行符且回到下一行的最前端
\r //換行符
\ //轉(zhuǎn)義符
'
"
\x1a //16進制數(shù)
如果成功,則該函數(shù)返回被轉(zhuǎn)義的字符串。如果失敗,則返回 false。
2.addslashes()
: 函數(shù)返回在預定義字符之前添加反斜杠的字符串 (stripslashes()
實現(xiàn)字符串還原)
預定義的字符有:
單引號(')
雙引號(")
反斜杠(\)
NULL
3.prepared statements(預處理機制)
<?php $mysqli = new mysqli("example.com", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } /* Non-prepared statement */ if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) { echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error; } /* Prepared statement, stage 1: prepare */ if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) { echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; } /* Prepared statement, stage 2: bind and execute */ $id = 1; if (!$stmt->bind_param("i", $id)) { echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error; } if (!$stmt->execute()) { echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; } ?>
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php程序設計安全教程》、《php安全過濾技巧總結(jié)》、《PHP運算與運算符用法總結(jié)》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
WordPress的文章自動添加關鍵詞及關鍵詞的SEO優(yōu)化
這篇文章主要介紹了給WordPress的文章添加關鍵詞及關鍵詞的SEO優(yōu)化方法,突出關鍵詞在搜尋結(jié)果中的作用,需要的朋友可以參考下2016-03-03PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法
這篇文章主要介紹了PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法,結(jié)合實例形式分析了ICU擴展intl的實現(xiàn)方法與拼音轉(zhuǎn)換、排序等相關操作技巧,需要的朋友可以參考下2017-05-05