我可以安全地假設(如果我只是獲得一個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. Bypass php is_numeric()函數是可能的嗎?
- 2. 可以從函數CreateODBCDate()進行代碼注入嗎?
- 3. 通過LINKS進行SQL注入?
- 4. 通過mysql_query進行SQL注入
- 5. 我可以通過php函數觸發一個javascript函數嗎?
- 6. AJAX可以通過非SSL進行嗎?
- 7. 可以通過playORM中的嵌入字段進行索引嗎?
- 8. 可以通過cygwin運行php exec嗎?
- 9. 你可以在函數中通過cfscript做可選參數嗎?
- 10. 這個函數可以防止sql注入和xss嗎?
- 11. 可以通過innerHTML將<select>函數放入表中嗎?
- 12. 我可以通過使用參數避免所有SQL注入攻擊嗎?
- 13. sql函數不會通過php執行
- 14. 是否可以通過以下函數進行列表理解?
- 15. 你可以使用sql()函數進行表連接嗎?
- 16. Vue可以通過依賴注入(DI)來導入組件嗎?
- 17. 在這種情況下可以執行SQL注入嗎?
- 18. 在Spring中通過註釋向構造函數注入參數
- 19. 線程之間可以通過LINX通信進行通信嗎?
- 20. 通過PHP Zend Framework進行YouTube註釋
- 21. 我們可以通過WebServices在Netsuite中運行CSV導入嗎?
- 22. 可以注入php,就像sql?
- 23. 我可以在f#中通過名稱調用函數嗎?
- 24. 可以通過在php中多次發佈一個數組嗎?
- 25. SQL注入是否可以通過類似複選框的輸入來執行?
- 26. 通過函數指針使用的函數可以內聯嗎?
- 27. 在PHP類的構造函數中運行查詢可以嗎?
- 28. 可以通過perl中的http請求進行交易嗎?
- 29. JADE可以在HTTP之下或通過HTTP進行工作嗎?
- 30. Android可以通過NFC與Window Phone進行通信嗎?
這可能是安全的。但這不是避免使用預備語句(PDO)的原因。 – 2012-01-02 21:10:35