2011-11-17 26 views
0

鑑於以下控制器方法,是否需要清理$filtro或將蛋糕做到這一點?如果是這樣,蛋糕是否有這個功能?find()方法是否淨化輸入?

function ajax_load_games($filtro, $console_id){   
    $this->set('game', 
     $this->Game->find('all', 
      array('conditions' => array('Game.game_name LIKE' => "%$filtro%")) 
     ) 
    ); 
} 
+0

消毒是什麼? SQL? HTML? XML? JSON? –

+0

cakephp find()方法執行SQL查詢。 – petervaz

回答

0

我不會稱之爲消毒,而是逃避。 如果您使用基本包裝(不是直接查詢()),它將自動完成所有查找操作。

還要注意: 這是基本的保存操作完成,以及:saveField,保存,白水。

但你沒有保護查詢或deleteAll,updateAll等!

0

蛋糕應用於消毒,以防止SQL注入(這是你的意思,可能)在find()save()方法,如果你使用正確的數組表示法。

它這麼說here in the manual

+0

Exacly,我很模糊的是,如果我在使用我發佈在我的問題上的結構時受到保護。特別是,我有一個污點變量直接進入聲明。這是否符合正確的標記? – petervaz

+0

您必須通過嘗試保存潛在的惡意代碼來對其進行測試。如果特殊字符和實體未被轉義,只需手動調用Sanitize類。 – mensch

相關問題