- 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 中存储少量数据和文字。
广告