- Phalcon 教程
- Phalcon - 首頁
- Phalcon - 概述
- Phalcon - 環境設定
- Phalcon - 應用程式結構
- Phalcon - 功能
- Phalcon - 配置
- Phalcon - 控制器
- Phalcon - 模型
- Phalcon - 檢視
- Phalcon - 路由
- Phalcon - 資料庫連線
- Phalcon - 切換資料庫
- Phalcon - 腳手架應用程式
- Phalcon - 查詢語言
- Phalcon - 資料庫遷移
- Phalcon - Cookie 管理
- Phalcon - 會話管理
- Phalcon - 多語言支援
- Phalcon - 資產管理
- Phalcon - 使用表單
- Phalcon - 物件文件對映器
- Phalcon - 安全特性
- Phalcon 有用資源
- Phalcon - 快速指南
- Phalcon - 有用資源
- Phalcon - 討論
Phalcon - Cookie 管理
Cookie 也稱為瀏覽器 Cookie,是儲存在瀏覽器中的小型文字檔案。它儲存與使用者身份相關的所有資訊。此資訊用於在使用者瀏覽不同頁面時驗證使用者。
Cookie 有兩種不同的型別:
會話 Cookie - 這些型別的 Cookie 保留在瀏覽器中並保留資訊,直到瀏覽器關閉。瀏覽器一旦開啟,將被視為同一使用者的全新會話。
持久 Cookie - 它包含一個規定的生命週期,並在給定的生命週期內保留在瀏覽器中。使用持久 Cookie 的那些網站會跟蹤每個使用者,即使使用者關閉了瀏覽器。
現在讓我們討論 Cookie 在 Phalcon 中是如何工作的。
Phalcon 中的 Cookie
Phalcon 使用Phalcon\Http\Response\Cookies作為 Cookie 的全域性儲存。Cookie 在向伺服器傳送請求時儲存在 Phalcon 中。
以下是設定 Cookie 的語法:
$this->cookies->set( "<cookie-name>", "<cookie-value>", time );
考慮以下示例。使用以下程式碼,當用戶登入 Web 應用程式時,我們將建立使用者的 Cookie。
<?php
class UsersController extends \Phalcon\Mvc\Controller {
public function indexAction() {
if ($this->cookies->has("login-action")) {
// Get the cookie
$loginCookie = $this->cookies->get("login-action");
// Get the cookie's value
$value = $loginCookie->getValue();
echo($value);
}
$this->cookies->set(
"login-action",
"abc",
time() + 15 * 86400
);
}
}
加密後的 Cookie 將顯示為輸出。
描述
名為“loginAction”的 Cookie 已建立,值為“abc”。
方法“indexAction”檢查 Cookie 是否存在並相應地列印值。
Cookie 的加密
Phalcon 中的 Cookie 在作為請求傳送到伺服器之前會被加密,並在我們從伺服器獲得適當響應後立即解密。這確保了授權使用者的安全性。
儘管具有加密和解密功能,但始終建議避免在 Cookie 中儲存敏感資料。Cookie 加密的配置包含在services.php檔案中。
/**
* Enable encryption key for setting values of cookies
*/
$di->set(
"cookies", function () {
$cookies = new Cookies();
$cookies->useEncryption(false);
return $cookies;
}
);
/**
* Set encryption key
*/
$di->set(
"crypt", function () {
$crypt = new Crypt();
$crypt->setKey('AED@!sft56$'); // Use a unique Key!
return $crypt;
}
);
注意 -
始終建議在將 Cookie 傳送到伺服器時使用加密。
如果不使用加密,所有內部應用程式都將暴露給攻擊者。
還建議在 Cookie 中儲存少量資料和文字。
廣告