爲什麼CodeIgniter的XSS過濾器只能通過正則表達式對特定事件做出反應,而不是首先對所有輸入進行清理,而不管內容是否受到污染?此外,這是爲什麼輸入時並沒有輸出完成(像它應該是什麼?)爲什麼CodeIgniter的XSS過濾器不乾淨?
0
A
回答
8
爲什麼CodeIgniter的XSS過濾器只有通過具體的事情,而不是消毒放在首位所有輸入的正則表達式的反應不管內容是否被污染?
這沒有多大意義。如果沒有先檢查一下,我們如何判斷是否有「污染」?
通過CI的xss_clean()
的定義,我們不總是要淨化輸入。正如你所提到的那樣,這是重要的輸出 - 這就是我們需要注意XSS atacks的地方。如果我們總是用CI的xss_clean()
「清理」輸入,那麼我怎樣才能在我的博客上發佈javascript或PHP代碼示例,或者讓用戶在評論中這樣做?它最終會變得[removed]
。
而且,爲什麼輸入過程中完成這件事,而不是輸出(像它應該是什麼?)
你必須啓用全局XSS過濾器在您的CI配置的選項,這將請在$_POST
,$_GET
和$_COOKIE
之前自動運行xss_clean()
,然後才能開始使用它。這是可以保護你免受自己損害的最低級別,但是該選項總是可用來明確清理數據。例如:
// With the Input class on $_POST data
$this->input->post('username', TRUE); // Second parameter runs xss_clean
// Using the Security class on any data
$this->security->xss_clean($username);
// Using the Form Validation class to automatically clean the input
$this->form_validation->set_rules('username', '', 'xss_clean');
既然你仍然可以簡單地使用$_POST['username']
相反,通過啓用全球過濾器將已經xss_cleaned你。這是一種懶惰的方式,不幸的是,一旦這些全局變量被清除,就無法撤消它。
如果您已經意識到XSS攻擊可能發生的時間和地點 - 您可以根據需要輕鬆使用該功能。請記住,這不是而是神奇地使所有數據「安全」,它只是防止一些更惡意的代碼注入。像</div>
這樣的更無害的東西將通過此過濾器。你應該始終以適當的方式對使用它的上下文進行顯式消毒。
相關問題
- 1. CodeIgniter形式的XSS過濾
- 2. Codeigniter會話xss過濾
- 3. Git過濾器分支 - 索引過濾器重新應用「乾淨」過濾器
- 4. 禁用codeigniter xss過濾或運行它
- 5. Codeigniter xss過濾和url鏈接
- 6. XSS PHP日誌過濾器?
- 7. IE8 XSS過濾器問題
- 8. 爲什麼orderby過濾器不工作?
- 9. 爲什麼過濾器不工作?
- 10. codeigniter中的XSS過濾不會阻止SQL注入嗎?
- 11. 通過此過濾器的XSS攻擊?
- 12. 不那麼幹淨架構
- 13. 爲什麼這個乾淨的URL不能生效?
- 14. 爲什麼乾淨網址的.htaccess代碼不工作?
- 15. 爲什麼「csrf_protection」不能在一個乾淨的ExpressionEngine上安裝?
- 16. 爲什麼這個乾淨的過濾器在第一次運行時被忽略?
- 17. 處理多個過濾器(PARAMS)乾淨利落地控制
- 18. CodeIgniter轉義乾淨的URL添加index.php/
- 19. 爲什麼芹菜不乾淨地關閉?
- 20. Django的escapejs過濾器和XSS
- 21. Rails的幹着過濾器
- 22. 爲什麼我的XMLHttpRequest不允許XSS?
- 23. 在Django中乾淨是什麼意思?
- 24. maven乾淨安裝 - 我能做什麼?
- 25. 爲什麼Opc.Ua.UserIdentity不能將密碼乾淨地發送到OPC服務器?
- 26. codeigniter 3中的xss過濾如何仍然有用?
- 27. 爲什麼我的columnfilter不能過濾?
- 28. 在移動Textarea申請XSS過濾器
- 29. 旁路XSS逃生過濾器
- 30. 在Safari/WebView中禁用XSS過濾器
是否可以打開全局xss篩選器並同時在適用的情況下顯式xss_clean()? – Obay 2012-03-15 06:09:33
如果您正在討論直接使用get,post和cookie:那麼它毫無意義 - 如果全局啓用,篩選器會自動運行這些事情。你仍然應該使用它,只要記住XSS的矢量是可以運行javascript的任何地方。例如,打印到Excel或文本文件時,它不會對您造成傷害。我總是說過濾器*輸出*,而不是輸入。 http://stackoverflow.com/questions/9674848/codeigniter-input-filtering/9675233#9675233 – 2012-03-15 06:57:08
......這樣說,它也不會傷害你做到這一點,如果這就是你想知道的:http: //stackoverflow.com/questions/9714945/is-it-okay-to-repeatedly-xss-clean-data-in-codeigniter – 2012-03-15 07:29:15