2014-04-10 40 views
0

我正在處理一個存在的網頁,我用jQuery修改了DOM。針對SQL注入的建議

在我的腳本中,一個POST Ajax調用將一個參數registration_id發送給一個php文件,該參數只由數字(例如310)組成。 該參數返回3個元素(idcontext_idtime_spenttrackings表)

因此,一個SQL請求過去了,我已經實現了一些安全在我的PHP代碼:

  • 我檢查POST參數設置
  • 我檢查,如果長度是
  • 我檢查參數僅ctype_digit()
  • 由數字組成第四安全性:對數據庫的訪問是嚴格的:我創建的用戶只能在 trackings表上選擇一個用戶,該表的字段爲 id, context_id, time_spent

您對此有何看法? 你認爲我必須做好預備嗎?

預先感謝您爲您的意見

托馬斯

+2

使用預處理語句較小做http://uk1.php.net/pdo.prepared-statements它確保sql不能被注入。你可以檢查很多,但是有遺漏或監督某些東西的風險。 – Veda

+0

另外添加:http://be2.php.net/mysql_real_escape_string(從@Veda檢查下面更新,更好,更安全的mysqli函數)。 – Cagy79

+2

@Cagy79一個已棄用,使用http://uk1.php.net/mysqli_real_escape_string – Veda

回答

1

你不知道你不知道的東西。看起來你對安全性已經有了足夠的瞭解,但是如果有人知道一個仍然會輸出比你想要的更多的技巧呢?不要試圖實現你自己的安全系統。

準備好的陳述被證明是安全的。如果你想確保你的安全,請使用它。您可以保留這些支票,但它們仍然可以用於提供用戶反饋。

在另一方面,我想不出任何注射的,你可以只用數超過10000