2010-03-26 39 views
1

這是我與CI的第一個應用程序,我想知道$ _POST是否乾淨,我可以直接將數據插入數據庫?

我已經啓用$config['global_xss_filtering'] = TRUE;

謝謝。

回答

11

不,但不帶參數調用$this->input->post()將返回通過XSS過濾器傳遞的所有項目。

另外,如果你正在使用它時,ActiveRecord文檔笨規定如下:

它還允許安全查詢, 因爲值是由系統自動逃脫 。

+0

這個答案現在是錯誤的,如果你想用XSS過濾器的所有項目做$ this-> input-> post(NULL,TRUE) – westcoast 2014-12-24 02:16:44

1

不,因爲SQL由相當標準的字母數字字符(the documentation)組成。你至少應該鍵入你的數據並使用php的mysql_real_escape_string()the documentation)。

這可以防止SQL注入,而XSS過濾不會。

0

簡短的回答:沒有 長一點的回答:也許吧,如果你使用更安全的DB方法

如果使用參數化功能(例如:pgSQL有pg_query_params()),那麼你就不需要消毒數據,如果你連接你的SQL,那麼你只需要清理數據,這通常被認爲是次級編碼。

0

它看起來像的東西笨(2.0.0)的最新版本已經改變...

$this->input->post不起作用

$_POST在啓用global_xss_filtering被自動清除。

+3

$ this-> input-> post從來沒有工作過。這是一種財產,而不是一種方法。您始終需要提供密鑰名稱,但下一個版本將允許第一個參數爲空以返回整個數組(清理)。 – 2011-03-02 01:35:09