簡體   English   中英

PHP- Codeigniter - 返回修剪的所有輸入數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM