0

0

如何配置Cookie的Secure与HttpOnly属性_防止中间人攻击窃取phpMyAdmin会话凭证

P粉602998670

P粉602998670

发布时间:2026-03-15 11:01:33

|

477人浏览过

|

来源于php中文网

原创

phpMyAdmin 的 Cookie Secure 和 HttpOnly 必须通过 config.inc.php 中的 $cfg['CookieSecure'] = true 和 $cfg['CookieHttpOnly'] = true 设置,而非 Web 服务器头或 setcookie();二者需同时正确配置且仅在 HTTPS 下生效,否则会导致登录失败或 Cookie 被浏览器丢弃。

phpMyAdmin 的 config.inc.php 里怎么设 Cookie 的 Secure 和 HttpOnly

必须通过 $cfg['cookiesecure']$cfg['cookiehttponly'] 两个配置项控制,不是靠 php 的 setcookie() 或 web 服务器头。改错地方就完全无效。

常见错误是去改 Apache/Nginx 的响应头,或在自定义登录脚本里调用 setcookie() —— phpMyAdmin 自己生成会话 Cookie 时根本不走那套逻辑。

  • $cfg['CookieSecure'] = true;:强制所有 Cookie 带 Secure 标志(仅 HTTPS 传输);若站点没配好 TLS,登录后会反复跳回登录页
  • $cfg['CookieHttpOnly'] = true;:加 HttpOnly,阻止 JS 读取 phpMyAdmin 相关 Cookie(如 pmaAuth-xxx
  • 两项都得写在 config.inc.php$cfg 数组赋值之后、且不能被条件覆盖(比如别包在 if ($_SERVER['HTTPS'] === 'on') 里)

为什么只开 HttpOnly 不够,Secure 必须配合 HTTPS 真实生效

Secure 属性本身不加密流量,只是告诉浏览器“别往 HTTP 连接发这个 Cookie”。如果 phpMyAdmin 跑在 HTTP 上却硬设 $cfg['CookieSecure'] = true,浏览器直接丢弃 Cookie,导致 session_id 不传递,每次请求都被当未登录处理。

典型现象:Set-Cookie: pmaAuth-xxx=...; path=/; HttpOnly; Secure 出现在响应头里,但开发者工具的 Application → Cookies 面板里看不到该 Cookie —— 就是 Secure 在 HTTP 下被静默忽略。

  • 确认是否真走 HTTPS:检查浏览器地址栏锁图标,且 $_SERVER['HTTPS'] === 'on'$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'
  • 反向代理(如 Nginx)需透传协议头,否则 phpMyAdmin 无法判断环境,$cfg['CookieSecure'] 可能误判
  • 内网调试时若用 HTTP + $cfg['CookieSecure'] = true,必然失败;临时改成 false,别删掉配置行

Apache/Nginx 该不该额外加 Header?

不该。phpMyAdmin 自己生成的 Cookie 已含 Secure/HttpOnly,再用 Header set Set-Cookie "HttpOnly;Secure" 会导致重复设置,可能触发浏览器拒绝(尤其旧版 IE)。唯一需要加 Header 的场景是:你用其他方式注入了非 phpMyAdmin 管理的 Cookie(比如单点登录 SSO Token),但那是另一回事。

QIMI奇觅
QIMI奇觅

美图推出的游戏行业广告AI制作与投放一体化平台

下载

立即学习PHP免费学习笔记(深入)”;

  • Apache 错误写法:Header edit Set-Cookie "(.*); ?$" "$1; HttpOnly; Secure" —— 会污染 phpMyAdmin 原生 Cookie,还可能把 Path=Domain= 搞乱
  • Nginx 同理,add_header Set-Cookie 是新增一条,不是修改已有 Cookie,结果就是两条 Set-Cookie 响应头,浏览器行为不可控
  • 真要全局加固,应该统一在 Web 服务器层用 cookies SameSite=Lax; Secure; HttpOnly 规则,但 phpMyAdmin 4.9+ 已默认支持 SameSite,不必额外动

验证 Cookie 属性是否生效的最快方法

打开浏览器开发者工具,登录后访问任意 phpMyAdmin 页面(如 /server_sql.php),看 Network → Headers → Response Headers 里的 Set-Cookie 字段,不是看 Application → Cookies 里有没有显示 HttpOnly(那个本来就不显示)。

  • 正确响应头应类似:Set-Cookie: pmaAuth-xxx=abc123; path=/; HttpOnly; Secure; SameSite=Lax
  • 如果没 Secure,检查 config.inc.php 是否拼错变量名(常见把 CookieSecure 写成 Cookie_Secure
  • 如果没 HttpOnly,确认不是被其他插件或自定义脚本用 setcookie() 覆盖了(搜索整个 phpMyAdmin 目录有无 setcookie 调用)

Secure 和 HttpOnly 是防御纵深里的基础一环,但它们拦不住已登录状态下的 XSS 攻击——如果页面存在可执行 JS 的漏洞,攻击者仍能发 API 请求盗数据。所以配置只是起点,不是终点。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

245

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

716

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3619

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

56

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

74

2026.01.13

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号