2013-02-17 24 views
2

我是codeigniter的新手,只是想確保我以正確的方式傳遞參數。Codeigniter:推薦的方式將用戶輸入傳遞給控制器​​

codeigniter可以使用常規的GET/POST輸入參數,可以使用輸入類在控制器中訪問。

  1. 如: $這個 - >輸入 - > GET/POST( '參數1',TRUE);

  2. 另一種方法是把它作爲 http://xyz.com/ci/index.php/cont/func/param1 其中參數1是可用於在續爲 'FUNC(參數1 $){}'

一個的方法。 在第二種情況下,CI會自動清理用戶輸入還是取決於我(我想它是後者)? 如果我必須這樣做,那麼該怎麼做呢?

灣 推薦用戶輸入方式(1 vs 2)?

℃。 「啓用/禁用查詢字符串」有哪些優點/缺點? d)。 在CI中,有沒有一種方法可以像Inspekt那樣清理/驗證用戶輸入?

+0

要了解如何進行消毒,請閱讀手冊http://ellislab.com/codeigniter/user-guide/libraries/security.html – 2013-02-17 19:48:42

+0

@crypticツthx以獲得快速響應,我認爲答案q'a'在某種程度上。你怎麼看q'b'? – bneupaane 2013-02-17 19:51:55

+1

它取決於數據的上下文。您是否期望它來自表單,API請求,常規的舊導航鏈接等。 – 2013-02-17 19:53:55

回答

1

ANSWERS

在第二情況下,確實CI自動進行消毒的用戶輸入或者是它高達我(I估計是後者)?如果我這樣做,那該怎麼辦呢?:

的輸入類 第二個可選參數,可以讓你通過XSS過濾器 運行數據。通過將第二個參數設置爲布爾值TRUE來啓用它;

您可能要清理它仍然這取決於你將如何使用它。但對我而言,我仍然以自己的方式對它進行消毒。我想如何去做。

這是通過用戶輸入的推薦方法(1比2):

我不認爲有關於限制怎樣還是怎樣選擇您使用的輸入,當數據從正在添加的FORM input然後你會使用POST,因爲你不能通過URL(或者你可能它只是不推薦)風格的樣式輸入,如2,如果它來自API或其他來源絕對是最好的方法是通過GET或CI的$this->uri->segment()功能。或function(param1)方法

C'啓用/禁用查詢字符串'的優點/缺點是什麼?:

那麼你仍然可以使用查詢字符串,即使它被禁用,我沒有看到任何缺點或禁用或啓用它的優點,

但你可以簡單地傳遞www.example.com/?param1=foo&param2=bar的URI,只需使用#this->input->get('param1')來檢索它,我使用這麼多,因爲我必須通過URI加密的數據。

D在CI中,有沒有一種方法可以像Inspekt一樣對用戶輸入進行清理/驗證? :

如果您想要檢查的功能,您可以將檢查集成到CI中。

+1

雖然您沒有給出清楚的答案,但是:當以http://形式傳遞時.com/ci/index.php/cont/func/param1',是否自動清理$ param1? – 2015-11-08 13:06:55

相關問題