[英]Is this a good way for SQL injection prevention
我在其他網站和論壇上也讀過很多有關如何防止SQL注入的內容。 唯一的問題就是,這使我對將內容寫入數據庫時如何保護您的網站的方式感到非常困惑。
我正在創建一個Schol項目,其中一些來自用戶的輸入將被寫入數據庫,我目前正在通過javascript檢查它們是否包含iligal char。 然后我使用ajax激活我的控制器,在模型中使用查詢將其發送回視圖。
但是,讓我們繼續我的問題。
如果我首先使用javascript(客戶端)驗證輸入,然后使用PHP驗證服務器端。 如果我首先在php中檢查輸入是否包含* *``> <這樣的非法字符,那就是這種事情。 您在查詢中將用於從數據庫中獲取信息的內容。 然后逃脫whitescpases,因為我不想在用戶輸入時在網站上放置空格。
然后在輸入上使用mysqli_real_escape_string()
。 然后將其發送到如下所示的查詢。
/**
* @param string
* @param string
* @return mixed
*/
public function updateUsername($oldUsername, $newUsername) {
return $this->_db->query("UPDATE `users` SET `username` = :new_username WHERE `username` = :old_username",
[':new_username' => $newUsername,':old_username' => $oldUsername]);
}
所以1>使用javascript檢查
2>通過php在char上進行檢查,例如* <>'#
3>使用mysqli_real_escape_string()
4>轉到PDO查詢
這是假裝SQL注入的好方法,我真的不想讓我的學校項目隨SQL注入一起直播。
格蕾茲
也非常感謝您閱讀我的長篇小說
mysqli_real_escape_string
結合使用,因為您不應該混合使用API,如果同時使用這兩個API,則會使轉義字符加倍,並在數據中添加\\
字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.