檢查用戶是否在表單字段中輸入惡意代碼的最佳方法是什麼?我看了其他問題,但這些只是檢查是否輸入了什麼內容,以及是否他們想要的內容(電話號碼中的電話號碼)。我正在尋找SQL注入的保護。在php中防止SQL注入
回答
Prepared statements是爲了防止SQL注入,當我們談論SQL注入時它們就足夠了。但是,還有一些其他的攻擊也應該阻止。 XSS,CSRF等。
SQL注入:
預處理語句的基本工作原理是這樣的:
- 準備:一個SQL語句的模板創建和發送到數據庫。某些值未指定,稱爲參數(標記爲「?」)。示例:INSERT INTO MyGuests VALUES(?,?,?)
- 數據庫解析,編譯並對SQL語句模板執行查詢優化,並存儲結果而不執行它
- 執行:稍後,應用程序將這些值綁定到參數,並且數據庫執行該語句。因爲它與不同價值觀 想要的應用程序可以執行該語句多次
樣品:
// Prepare the statement.
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
// Bind parameters.
$stmt->bind_param("sss", $firstname, $lastname, $email);
// Set parameters.
$firstname = "John";
$lastname = "Doe";
$email = "[email protected]";
// Execute the statement.
$stmt->execute();
// Close the statement.
$stmt->close();
// Close the connection.
$conn->close();
所以我想在任何地方使用我接受用戶輸入? –
是的,只要你將用戶的輸入插入數據庫。 – Spectarion
好的。我是否也應該在登錄時使用它,因爲我在Google上搜索一些內容,並且看到用戶可以在用戶名字段中這樣做。 '約翰'或1 = 1; - ' –
使用htmlspecialchars
和htmlentities
到HTML特殊字符,如果爲HTML實體。您打算存儲或輸出用戶輸入字符串。這將有助於避免HTML注入。
Spectarion的答案是SQL注入的一個很好的解決方案。
- 1. 防止SQL注入的PHP
- 2. PHP防止SQL注入/ XSS
- 3. 防止SQL注入與PHP
- 4. 防止SQL注入PHP中的MDB2
- 5. PHP + SQL腳本 - 防止SQL注入
- 6. 防止SQL注入
- 7. 防止SQL注入
- 8. 防止sql注入
- 9. 防止SQL注入在asp.net
- 10. 防止SQL注入在ZF
- 11. 防止php注入
- 12. SQL防止SQL注入
- 13. 防止插入SQL注入
- 14. 如何防止SQL注入,PHP
- 15. 防止SQL注入 - PHP程序
- 16. 功能PHP防止SQL注入和XSS
- 17. 在python中防止SQL注入
- 18. 在mysqli中防止sql注入
- 19. 在Ibatis中防止SQL注入
- 20. 在Rails中防止SQL注入
- 21. 防止在nhibernate中注入Sql
- 22. 防止動態SQL中的SQL注入
- 23. 防止SQL注入ASP .NET
- 24. Delphi - 防止SQL注入
- 25. 如何防止SQL注入?
- 26. TryParse防止SQL注入嗎?
- 27. pdo防止sql注入
- 28. 2012年防止SQL注入
- 29. 試圖防止sql注入
- 30. 防止SQL注入查詢
清理輸入時的處理,剝離標籤,使用PDO等。 –
您的問題太寬泛。你必須確切地確定問題,並考慮你有什麼努力去做。您可以[檢查此](https://stackoverflow.com/help/how-to-ask)尋求幫助。 – SaidbakR
我確實說過我需要一些東西來防止MySQL注入。你能指出我可以更具體的嗎? –