[英]PHP- Codeigniter - return all input data trimmed
我想修剪每個input-data (get,post,cookie,session and so on)
。
我正在嘗試構建一個hook
文件,但不知道何時使其運行,因為我想在執行控制器之前將已修剪的所有輸入數據傳遞給控制器。
Codeigniter文檔說:
pre_system
在系統執行期間很早就打電話。 只有
此時已加載基准測試和鈎子類。 沒有發生路由或其他進程。
pre_controller
馬上打電話
在調用任何控制器之前。 已完成所有基類,路由和安全檢查。
post_controller_constructor
在你的控制器后立即調用
實例化,但在任何方法調用發生之前。
post_controller
在控制器完全啟動后立即調用
執行。
哪些我必須使用? pre_controller?
不,你不使用pre_controller
。 請改用pre_system
。
您希望盡早修改輸入變量,否則Codeigniters輸入類將對您起作用(取決於配置,但如果您不希望從config.php中執行代碼,則pre_system
是安全的方法) 上下文 )。
對於你的遞歸修剪需求,這應該這樣做: array_walk_recursive(array(&$_SERVER, &$_COOKIE, &$_GET, &$_POST), 'trim');
因為那些輸入數組僅在其葉節點處包含字符串值。 但是要注意做一般事情,這通常會導致副作用,例如CI XSS過濾。 如果您正在尋找特定於CI的解決方案,另一種方法可能是擴展輸入類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.