我有1個主要網站,我想從iPhone應用程序的主要網站插入數據。在這種情況下,我想通過$ _GET插入數據,如果我這樣做,我應該採取哪些預防措施?其他解決方案?這會被稱爲API嗎?
回答
確保您採取預防措施,以防止SQL Injection Attacks, as described on the PHP documentation site。
Wikipedia has good summary of Code Injection一般。
其他類型的注射,你應該特別關注作爲一個PHP開發人員將包括(但不一定侷限於):
「shell命令注入」 - 見PHP's escapeshellarg()。
「包含文件注入」 - 避免包括文件的名字都直接從已提交的用戶數據產生。如果您必須這樣做,那麼解析該值,並強制包含的文件位於應用程序中的「安全」目錄中,其中不能找到其他敏感數據或非冪等腳本。
在互聯網上有很多的閱讀。花一些時間與谷歌追蹤並閱讀它。這些技術和關注點適用於所有語言和平臺 - 不僅僅是PHP - 因此您將始終使用您學習的信息。
祝你好運。
作爲一個快速的總結......想象一下,如果有人進入"1'; DROP TABLE users; --"
。您的SQL查詢可能如下所示:"...WHERE id='1'; DROP TABLE users; --';"
。 (SQL中的--
是註釋 - 忽略它後的所有內容。)最終,他們會正確猜測您的某個表名,並且您已經失去了一切。或者他們可以做到這一點放「管理員」的用戶名外地和"password' OR 1=1; --"
在密碼字段,導致一個查詢,看起來像這樣"SELECT * FROM users WHERE username='Administrator' AND password='pass' OR 1=1; --';"
。當1 = 1總是評估爲真時,他們將能夠以他們想要的任何人登錄。
爲了避免這種情況,只爲你所有$_GET
瓦爾做$password=mysql_real_escape_string($_GET['password'],$query_reference);
。
- 1. 使用$ _GET變量插入數據庫
- 2. 數據庫標準化注意事項
- 3. 在並行調用mysql數據庫時的注意事項
- 4. 如何將意外事件表插入SQL Server數據庫?
- 5. 利用主數據服務時的數據庫設計模式/注意事項
- 6. 將數據插入SQL Server數據庫使用ADO.Net數據集
- 7. 插入項目數據庫
- 8. 將數據插入到cPanel數據庫
- 9. 將項目插入數據庫
- 10. 無法將數據插入數據庫
- 11. Ajax將數據插入數據庫
- 12. 將SQLite數據插入MySql數據庫
- 13. 將數據插入數據庫Java JDBC
- 14. 將數據插入數據庫?
- 15. JSP將數據插入MYSQL數據庫
- 16. 將數據插入數據庫
- 17. errro將數據插入數據庫時
- 18. 將數據插入MYSQL數據庫
- 19. 將數據插入數據庫 - LARAVEL
- 20. 監視SQL數據庫表更改的設計注意事項
- 21. 將數據插入SQLite數據庫
- 22. 簡單的數據庫注意事項和CakePHP
- 23. 無法將數據插入數據庫
- 24. 將JSON數據插入數據庫表
- 25. 使用PHP將數組數據值插入MySQL數據庫表
- 26. 使用PDO將數組數據插入到數據庫中
- 27. 無法將數據插入到MySQL事件數據庫中
- 28. 使用JDBC將數據插入Oracle數據庫的問題
- 29. 使用C#中的數據庫值填充ConcurrentDictionary的鎖定注意事項
- 30. 使用VB.Net將數據插入到Access數據庫