2012-10-19 24 views
0

一些黑客可以訪問我的數據庫,我會找到這個bug;我沒有訪問服務器日誌。 我做了一個文本文件保存可疑的查詢驗證碼:如何在運行之前檢測異常查詢(注入可疑)?

function query($query) { 
$file = 'sqllog.txt'; 
if(/* Which condition should i use to detect? */){ 
$contents = file_get_contents($file); 
$contents.="\r\n"; 
$contents.=$query; 
file_put_contents($file,$contents); 
} 
$this->theQuery = $query; 
return mysql_query($query, $this->link); 
} 

我應該使用何種條件來檢測SQL注入可疑的查詢?

+0

你沒有日誌文件? – jcho360

+0

如果您正在尋找模式,您應該記錄所有查詢,然後查看常見模式。 –

+1

只是逃避你在mysql查詢中使用的變量。 – CodeAngry

回答

3

您應該在代碼庫中查找未經過消毒的輸入(即不使用mysql_real_escape_string)。理想情況下,在將參數插入查詢之前調用此函數。

或者,考慮使用PDO切換到預準備語句,SQL注入將不再是問題。

相關問題