我可以安全地假設(如果我只是獲得一個ID號)is_numeric是否足以阻止SQL注入攻擊?或者是否有可以通過is_numeric傳遞的sql注入方法?在PHP中可以通過is_numeric函數進行sql注入嗎?
回答
你會得到更好的服務,只是做的事:
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
這樣就可以避免is_numeric
功能的開銷。儘管這兩種方法都足以避免注入(只要你對數據做了某些事情,如果is_numeric
返回FALSE)。如果所討論的$ _GET變量不存在,三元運算符還會確保您不會收到E_NOTICE。
你能描述函數調用的開銷與三元運算符相比有多高? – KingCrunch 2012-01-02 21:11:14
@KingCrunch:你不一定要使用這種方法。它不提供驗證輸入的機會。 – 2012-01-02 21:12:05
@KingCrunch我知道'開銷'的爭論可能會引發宗教書呆子的戰爭,但我沒有看到如何避免一個不必要的函數調用永遠不會是壞事。 – rdlowrey 2012-01-02 21:13:22
您可以使用intval
或floatval
。
不,沒有。但是,請注意,例如is_numeric('0xaf5') == true
,因此根據您想實現的目標可能還不夠。
- 1. 可以從函數CreateODBCDate()進行代碼注入嗎?
- 2. 通過mysql_query進行SQL注入
- 3. 通過LINKS進行SQL注入?
- 4. AJAX可以通過非SSL進行嗎?
- 5. 可以通過cygwin運行php exec嗎?
- 6. 這個函數可以防止sql注入和xss嗎?
- 7. 我可以通過使用參數避免所有SQL注入攻擊嗎?
- 8. sql函數不會通過php執行
- 9. 是否可以通過以下函數進行列表理解?
- 10. 你可以使用sql()函數進行表連接嗎?
- 11. Vue可以通過依賴注入(DI)來導入組件嗎?
- 12. 在Spring中通過註釋向構造函數注入參數
- 13. 通過PHP Zend Framework進行YouTube註釋
- 14. 線程之間可以通過LINX通信進行通信嗎?
- 15. 可以通過在php中多次發佈一個數組嗎?
- 16. SQL注入是否可以通過類似複選框的輸入來執行?
- 17. 通過函數指針使用的函數可以內聯嗎?
- 18. 可以通過perl中的http請求進行交易嗎?
- 19. 通過默認成員資格進行SQL注入。
- 20. 簡單的PHP函數對SQL注入安全嗎?
- 21. 我可以用php導入sql嗎?
- 22. 在HttpHandler中使用IoC進行構造師/注入者注入,有可能嗎?
- 23. 我可以對此代碼執行SQL注入嗎?
- 24. PHP SQL注入可能性
- 25. 此查詢是否可以進行SQL注入?
- 26. 創建傳統轉義函數SQL注入在PHP中安全嗎?
- 27. 我可以在SQL Server Express中進行開發,以便在以後的完整SQL Server中進行部署嗎?
- 28. 我可以通過PHP中的變量將DEFINED常量傳遞給函數嗎?
- 29. 我可以爲EJB使用CDI構造函數注入嗎?
- 30. 我可以在ContentResolver列查詢上運行SQL函數嗎?
這可能是安全的。但這不是避免使用預備語句(PDO)的原因。 – 2012-01-02 21:10:35