NGINX PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案

news2024/11/24 4:22:39

NGINX & PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案


1 / 说明
基于安全的考虑,需要给cookie加上Secure和HttpOnly属性,HttpOnly比较好理解,设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie打出cookie的内容。Secure属性是说如果一个cookie被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用http协议是不发送的。
会话cookie中缺少Secure属性会导致攻击者可以通过非HTTPS页面窃取到用户的cookie信息,造成用户cookie信息的泄露。
cookie中的Secure指的是安全性。通过设定cookie中的Secure,可以指定cookie是否只能通过https协议访问。一般的cookie使用HTTP协议既可访问,如果启用Secure属性,则浏览器仅仅会在HTTPS请求中向服务端发送cookie内容。
在WEB应用中,对于敏感业务,如:登录或者付款,需要使用HTTPS来保证内容的传输安全,而在用户成功获得授权之后,获得的客户端身份cookie如果没有设置为Secure,那么很有可能会被非HTTPS页面拿到,从而造成重要的身份泄露。

2 / PHP解决方案
PHP 5.6以后的版本:
① 简单粗暴直接修改php.ini文件
session.cookie_httponly=true
session.cookie_secure =
② 在php代码中使用ini_set函数设置
ini_set(“session.cookie_httponly”, 1);
(单一入口框架加载index.php 入口文件即可)

③在调用 session_start()之前调用 session_set_cookie_params()函数设置
如果是框架需要修改底层代码,老框架推荐前两个粗暴有效的方法。

<?php private function startSession($time = 3600, $ses = 'MYSES') { session_set_cookie_params($time); session_name($ses); session_start(); if (isset($_COOKIE[$ses])) #第五个参数 设置为true setcookie($ses, $_COOKIE[$ses], time() + $time, "/", true); } ?>

3 / Nginx解决方案
● cookie没有使用http-only;
● cookie没有携带secure属性;
● http头中需要配置“X-Frame-Options:SAMEORIGIN”;
以上这几点可以通过nginx的配置来轻松实现,具体方法就是在需要更改的网页server的配置里面添加下面几句话。

## 加载Nginx.conf 文件 http{ } 或 server{ }
add_header Set-Cookie “HttpOnly”;
add_header Set-Cookie “Secure”;
## 表示该页面可以在相同域名页面的 frame 中展示
add_header X-Frame-Options SAMEORIGIN;

 

————————————————
版权声明:本文为CSDN博主「Ba?cker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/backerli/article/details/120465246

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/685403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统的文件等相关操作命令

文章目录 1 查找文件&#xff08;find、grep&#xff09;2 查看文件内容&#xff08;cat、more、less、head、tail&#xff09;3 文件比较&#xff08;diff&#xff09;4 文本编辑器&#xff08;vi、vim&#xff09;5 文件压缩与解压&#xff08;tar、tar.tgz、zip、rar、rar.g…

yum安装 lnmp

目录 一.nginx 的yum安装 1.关闭防火墙 2. 安装 nginx 3.安装依赖包 4.启动服务 二. 安装 mysql 5.7 (mariadb) 1.nysal的yum安装 2. 启动服务 3.在日志文件中找出root用户的初始密码 4.登录 mysql 5. 停止版本更新&#xff0c;稳定数据库的运行 三.php 的yum安装 1.…

rust abc(4): 定义变量并使用 mut 关键字

文章目录 1. 目的2. 不可变变量 (immutable variable)2.1 含义2.2 代码实例 3. 可变变量 (mutable variable)3.1 含义3.2 代码实例 4. 总结 1. 目的 学习 rust 语言中变量的定义方式&#xff0c; 包括普通变量&#xff08;immutable&#xff09;、可变变量&#xff08;mutable…

轻量云服务器(香港)ping不通怎么解决?

​  在使用轻量云服务器(香港)时&#xff0c;有时候会出现ping不通的情况&#xff0c;这时候我们该怎么办呢? 首先&#xff0c;我们需要知道 ping 不通的原因。 ping 是一种基于 ICMP 协议的网络测试工具&#xff0c;它可以用来测试网络连接的质量和速度。如果 ping 不通&am…

英特尔进军晶圆代工,台积电“危”?

近来&#xff0c;半导体市场再次变得繁荣&#xff0c;尤其随着AI大型机模型的出现&#xff0c;半导体巨头们纷纷加大投资力度&#xff0c;以期在AI时代中积蓄新的增长。 作为AI大模型时代中最受益的厂商之一&#xff0c;英伟达稳居市场前沿&#xff0c;而AMD也加入了竞争&…

阿里发布2023年Java社招岗(正式版)面试题

每年的金三银四、金九银十都是各大公司招聘程序员的最佳时期&#xff0c;在这段时间内有好多程序员为面试而发愁&#xff0c;不知道如何才能收到好的 offer&#xff0c;拿到理想的薪资&#xff0c;实现自我的人生价值&#xff01; 我想告诉大家的是&#xff0c;其实都不用愁的…

Web Worker是什么?怎么用?

71. Web Worker是什么&#xff1f;怎么用&#xff1f; Web Worker 是一种浏览器提供的 JavaScript 特性&#xff0c;它允许在后台线程中运行脚本&#xff0c;从而避免阻塞主线程并提高页面性能和响应速度。 1. Web Worker 的使用方法如下&#xff1a; 创建 Worker 对象&…

chatgpt赋能python:Python编译成库的利与弊

Python编译成库的利与弊 Python作为一种高级编程语言&#xff0c;具有简洁易读的语法和强大的生态系统&#xff0c;在数据科学、Web开发、游戏开发等领域得到广泛应用。然而&#xff0c;Python解释器的执行效率较低&#xff0c;因此为了提高Python程序的性能&#xff0c;常使用…

【嵌入式环境下linux内核及驱动学习笔记-(18)内核驱动模块的启动机制】

目录 1、module_init宏1.1 展开1.2 解释以下几个标识1.2.1 fn1.2.2 id1.2.3 类型 initcall_t &#xff1a;1.2.4 __used1.2.5 __init1.2.6 __attribute__ 1.3 实例说明 2、 驱动启动机制2.1 initcall_t 类型的数组2.2.1 __initcallx_start数组2.2.2 initcall_levels[]数组 2.3 …

每日一练 | 华为认证真题练习Day64

1、如下图所示的网络&#xff0c;所有路由器运行0SPF协议&#xff0c;链路上方为Cost值的大小&#xff0c;则RA路由表中到达网络10.0.0.0/8的Cost值是多少&#xff1f; A. 70 B. 20 C. 60 D. 100 2、如下图所示的网络&#xff0c;主机A没有配置网关&#xff0c;主机B存在网关…

基于GEC6818 Qt智能病房监控系统

文章目录 一、项目设备及平台二、项目功能说明1. 整体功能2. GEC6818开发板功能介绍3. GY39模块功能介绍4. MQ-2型烟雾传感器功能介绍5. RFID模块 三、硬件系统设计实现与图表四、软件系统设计实现与流程图1. 软件系统设计总体描述2. 软件实现流程图3. 操作过程 五、调试过程中…

基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真(电压比例反馈及一二次微分反馈)

基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真&#xff08;电压比例反馈及一二次微分反馈&#xff09;资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87941037模型简介&#xff1a; 参考阮新波教授【LCL型并网逆变器的控制技术…

scrapy的数据保存到数据库

将数据保存到数据库 mysql数据库 下载链接数据库的依赖 Conda/pip install pymysql在piplines.py 文件中 重写open_spider方法 ​ 连接到mysql数据库 def open_spider(self, spider):self.conn pymysql.Connect(hostlocalhost,port3306,userroot,password20020115,dbscrap…

go系列-读取文件

1 概述 2 整个文件读入内存 直接将数据直接读取入内存&#xff0c;是效率最高的一种方式&#xff0c;但此种方式&#xff0c;仅适用于小文件&#xff0c;对于大文件&#xff0c;则不适合&#xff0c;因为比较浪费内存。 2.1 直接指定文化名读取 在 Go 1.16 开始&#xff0c;i…

chatgpt赋能python:Python编程语言制作的著名游戏

Python编程语言制作的著名游戏 Python是一种广泛使用的编程语言&#xff0c;其简单易读的语法让其成为许多游戏开发者的首选。本文将介绍利用Python编程语言制作的几个著名游戏&#xff0c;并将着重标记加粗它们的标题&#xff0c;以便于读者更容易了解。 1. 游戏&#xff1a…

【Python】python入门篇

概述 官网 https://www.python.org/ Python 是一种脚本语言&#xff08;scripting language&#xff09;。 与编译型语言&#xff08;如 C 和 C&#xff09;不同&#xff0c;Python 的程序代码不需要进行显式的编译&#xff0c;在执行时会动态地解释执行代码。 Python 的脚本执…

FFmpeg 解码 AAC 格式的音频

FFmpeg 默认是可以解码 AAC 格式的音频&#xff0c;但是如果需要获取 PCM16 此类数据则需要经过音频转码。首先要打开解码器&#xff0c;然后向解码器发送 AAC 音频帧&#xff08;不带 ADTS&#xff09;&#xff0c;然后从解码器获取解码后的音频帧&#xff0c;数据是 float 类…

【软考网络管理员】2023年软考网管初级常见知识考点(12)-应用层协议

涉及知识点 应用层协议详解&#xff0c;DNS的概念&#xff0c;FTP的概念&#xff0c;DHCP的概念&#xff0c;Telnet的概念&#xff0c;电子邮件协议 软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主…

我的内网渗透-代理转发(2)

目录 ssh telnet与SSH的区别 安装环境 常用参数 本地端口转发 远程端口转发 动态端口转发 Socks 使用方法 msf端口转发 常用参数 使用方法 创建监听 MSF读取文件命令&#xff08;开启msf的时候直接读取文件就自动设置好监听的各种配置&#xff09; 获取会话后 …

NCI Core Control Messages

NCI 版本参数应编码为 8 位字段&#xff0c;由两个 4 位无符号值组成&#xff0c;表示本规范的主要和次要版本级别。 最高有效 4 位应表示主要版本级别。 最低有效 4 位应表示本规范的次要版本级别。 如果 DH 支持 NFCC 报告的主要版本&#xff0c;则 DH 应继续通信&#xff0…