但是越使用越覺得Cookie這東西在開發上實在太常見, 不為此打篇說明好像不太夠
前言說夠了, 我們開始吧!
其實 官網 說很清楚了, 不過我還是把常用的列出來好了, 畢竟很多我們用不到.
寫入
$cookie=new CHttpCookie('變數名稱',變數數值);
Yii::app()->request->cookies['變數名稱']=$cookie;
讀取
$test=Yii::app()->request->getCookies(); //抓全部Cookie
echo $test['變數名稱'];
$cookieData=Yii::app()->request->cookies['變數名稱']->value; //抓指定的Cookie
echo $cookieData;
檢查某Cookie是否有值
isset(Yii::app()->request->cookies['變數名稱']);
將Cookie值清空
將Cookie值清空
Yii::app()->request->cookies->clear(); //刪除全部Cookie
unset(Yii::app()->request->cookies['變數名稱']); //刪除指定的Cookie
設定過期的時間
$cookie=new CHttpCookie('變數名稱',變數數值);
$cookie->expire time()+60*60*24*30; //30天後過期
設定透過HTTPS傳輸Cookie (可在framework\web\js\source\jquery.cookie.js看到說明, 參考這篇)
'session' => array(
'cookieParams' => array(
'secure' => true,
),
),
ps: 設定的位置在/protected/config/main.php
設定httpOnly 防止 XSS攻擊 (參考這篇跟這篇2)
'session' => array(
'cookieParams' => array(
'httpOnly' => true,
),
),
ps: 設定的位置同上
官方說明如下:
cookie是否只允許通過HTTP協議訪問。通過設置這個屬性為true,cookie將無法訪問腳本語言, 例如JavaScript,它可以有效減少由於通過身份被盜竊而導致的XSS攻擊。注意:此屬性僅適合PHP 5.2.0以及以上版本。
ps: 沒想到從IE6 SP1就有支援了...不過有多少人真的有注意到資安問題並開啟呢?
沒有留言:
張貼留言