PHP 网站 Cookie 处理指南
设置 Cookie
php
// 设置cookie(24小时过期)setcookie("username", "JohnDoe", time() + 86400, "/");// 带安全选项的cookie(仅HTTP访问,防止JS窃取)setcookie("secure_token", "abc123", [ 'expires' => time() + 86400, 'path' => '/', 'domain' => 'example.com', 'secure' => true, 'httponly' => true, 'samesite' => 'Strict']);
读取 Cookie
php
// 读取单个cookieif(isset($_COOKIE["username"])) { echo "欢迎回来," . htmlspecialchars($_COOKIE["username"]);}// 读取所有cookieforeach ($_COOKIE as $key => $value) { echo "$key : $value
";}
更新 Cookie
php
// 更新cookie(实际上是覆盖)setcookie("username", "NewName", time() + 86400, "/");
删除 Cookie
php
// 删除cookie(设置过期时间为过去)setcookie("username", "", time() - 3600, "/");
安全注意事项
- 始终验证和过滤cookie数据
- 对输出到页面的cookie值使用
- htmlspecialchars()
- 敏感信息不要存储在cookie中
- 考虑使用会话(session)替代cookie存储敏感数据
- 实现CSRF保护机制
高级用法 - Cookie数组
php
// 设置数组型cookiesetcookie("user[]", "John", time() + 3600);setcookie("user[role]", "admin", time() + 3600);// 读取数组型cookieprint_r($_COOKIE["user"]);
最佳实践
- 为cookie设置适当的过期时间
- 指定明确的path和domain限制
- 生产环境启用secure和httponly标志
- 考虑使用SameSite属性防止CSRF攻击
- 遵守GDPR等隐私法规,必要时获取用户同意
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.