- 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 );
考虑以下示例。使用以下代码,当用户登录网络应用程序时,我们将创建用户的 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 中存储小数据和文字。