想知道如果TRIM(),用strip_tags()和addslashes的組合()就足以過濾從$ _GET和$ _POST過濾用戶輸入
Q
過濾用戶輸入
0
A
回答
2
這取決於您希望執行哪種驗證。
下面是一些基本的例子:
- 如果數據將在MySQL的查詢使用請確保對數據使用mysql_real_escape_query(),而不是addslashes()的。
- 如果它包含文件路徑,請務必刪除「../」部分並阻止對敏感文件名的訪問。
- 如果您要在網頁上顯示數據,請確保在其上使用htmlspecialchars()。
但最重要的驗證只接受你期待值,換言之:只允許數字值,當你期待號碼等
1
簡短的回答變量值:無。
長答案:這取決於。
基本上,你不能說如果沒有考慮你想用它做什麼,一定量的過濾是或不夠的。例如,以上將允許通過「javascript:dostuff();」,這可能是好的,或者如果您碰巧在鏈接的href屬性中使用GET或POST值之一,則可能不會。
同樣,您可能有一個豐富的文本區域,用戶可以在其中進行編輯,因此剝離標籤不完全合理。
我想我想說的是,有一套簡單的步驟來消毒數據,以便您可以將其交叉並說「已完成」。你總是必須考慮數據在做什麼。
1
它高度依賴於你將要使用它的地方。
- 如果您打算以HTML格式顯示內容,請確保您正確指定了編碼(例如:UTF-8)。只要你去掉所有的標籤,你應該應該罰款。
- 對於在SQL查詢中使用,addslashes是不夠的!例如,如果您使用mysqli庫,則需要查看mysql::real_escape_string。對於其他DB庫,請使用指定的轉義函數!
- 如果你打算在javascript中使用字符串,addslashes 不會就夠了。
- 如果您對瀏覽器錯誤偏執,請查看OWASP Reform library
- 如果您在HTML以外的其他上下文中使用數據,則會應用其他轉義技術。
相關問題
- 1. 過濾用戶輸入
- 2. 通過用戶輸入過濾ObservableCollection
- 3. 使用過濾日期過濾用戶輸入
- 4. 過濾用戶輸入的做法
- 5. PHP中的用戶輸入過濾
- 6. EXCEL VBA過濾器用戶輸入
- 7. 將用戶輸入過濾爲CSS
- 8. 基於用戶輸入過濾jqgrid
- 9. 過濾快速用戶觸摸輸入
- 10. 用戶輸入過濾 - 我需要過濾HTML嗎?
- 11. 通過AJAX向用戶報告已過濾的用戶輸入
- 12. nodejs過濾輸入
- 13. Apigility輸入過濾注入
- 14. 通過用戶輸入矩陣過濾列/行數據-matlab
- 15. 如何過濾用戶輸入字符串並存儲新的過濾數組
- 16. 使用用戶輸入的值來過濾值(Pandas,Python 3)
- 17. python過濾輸入到csv.reader
- 18. 按頻率過濾輸入
- 19. 實時過濾輸入?
- 20. Android多輸入過濾器
- 21. 輸入框過濾器宏
- 22. ActiveAdmin過濾排除輸入
- 23. ssrs中的動態過濾器讓用戶輸入值
- 24. VB.Net,按用戶輸入的範圍過濾DataGridView
- 25. 基於用戶輸入的Mysql過濾器查詢
- 26. 蟒數據幀過濾柱是用戶輸入
- 27. 使用輸入文本客戶端過濾數據表
- 28. 驗證用戶輸入(搜索過濾器)
- 29. Angularjs:在用戶輸入後更新過濾器
- 30. 用戶輸入過濾器的ng表工作
這取決於你與你的GET做什麼,並POST值。 – voyager 2009-12-09 03:33:55