1://防xss 跨棧注入獲取get/post傳值
Yii::app()->request->getQuery($key, $default_value, true);//獲取get傳值
Yii::app()->request->getPost($key, $default_value, true); //獲取post傳值
Yii::app()->request->getParam($key, $default_value, true); //獲取post/get傳值
2:
跨站請求僞造(簡稱CSRF)攻擊,即攻擊者在用戶瀏覽器在訪問惡意網站的時候,讓用戶的瀏覽器向一個受信任的網站發起攻擊者指定的請求。 Yii實現了一個CSRF防範機制,用來幫助防範基於POST的攻擊。默認情況下,CSRF防範是禁用的。如果你要啓用它,可以編輯應用配置 中的組件中的CHttpRequest部分。
return array(
'components'=>array(
'request'=>array(
'enableCsrfValidation'=>true,
),
),
);
要顯示一個表單,請使用CHtml::form而不要自己寫HTML代碼。
Yii實現了一個cookie驗證機制,可以防止cookie被修改。啓用之後可以對cookie的值進行HMAC檢查。
return array(
'components'=>array(
'request'=>array(
'enableCookieValidation'=>true,
),
),
);
直接使用AR對象賦值操作數據庫的Yii會自動做防注入處理。
不使用AR對象賦值方式,使用直接sql的,也應該使用這種參數賦值的方式,可以防止注入攻擊:
$db = Yii::app()->db;
$sql = "select * from table where userid=:userid and date between :date_start and :date_end"
$results = $db->createCommand($sql)->query(array(
':userid' => 115,':date_start'=>'2009-12-1',':date_end'=>'2009-12-31',
));
待續。。。。。。。。。