php之memcached存储session配置、存储、获取
【session】
①、session.save_handler = memcache
session.save_handler 定义了来存储和获取与会话关联的数据的处理器的名字,默认是files
②、session.save_path string
session.save_path 定义了传递给存储处理器的参数。如果选择了默认的 files 文件处理器,则此值是创建文件的路径。默认为 /tmp
session.save_path = "tcp://127.0.0.1:11211,tcp://127.0.0.1:11212"
③、session.name string
session.name 指定会话名以用做 cookie 的名字。只能由字母数字组成,默认为 PHPSESSID
④、session.auto_start boolean
session.auto_start 指定会话模块是否在请求开始时自动启动一个会话。默认为 0(不启动)
⑤、session.serialize_handler string
session.serialize_handler 定义用来序列化/解序列化的处理器名字 默认使用 php
⑥、session.gc_probability integer
session.gc_probability 与 session.gc_divisor 合起来用来管理 gc(garbage collection 垃圾回收)进程启动的概率。默认为 1
⑦、session.gc_divisor integer
session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。
此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。session.gc_divisor 默认为 100。
⑧、session.gc_maxlifetime integer
session.gc_maxlifetime 指定过了多少秒之后数据就会被视为“垃圾”并被清除。
垃圾搜集可能会在 session 启动的时候开始( 取决于session.gc_probability 和 session.gc_divisor)
NOTICE:
如果不同的脚本具有不同的 session.gc_maxlifetime 数值但是共享了同一个地方存储会话数据,
则具有最小数值的脚本会清理数据。此情况下,与 session.save_path 一起使用本指令
⑨、session.referer_check string
session.referer_check 包含有用来检查每个 HTTP Referer 的子串。
如果客户端发送了 Referer 信息但是在其中并未找到该子串,则嵌入的会话 ID 会被标记为无效。默认为空字符串
⑩、session.entropy_file string
session.entropy_file 给出了一个到外部资源(文件)的路径,该资源将在会话 ID 创建进程中被用作附加的熵值资源。
例如在许多 Unix 系统下都可以用 /dev/random 或 /dev/urandom。 在 Windows 上自 PHP 5.3.3 起加入了此功能。
设置 session.entropy_length 为非零的值将使 PHP 使用 Windows Random API 作为熵值源。
Note: 自 PHP 5.4.0 起,默认情况下, session.entropy_file 在 /dev/urandom 或 /dev/arandom 可用的时候使用它们。 在 PHP 5.3.0 中此指令默认留空。
11、session.entropy_length integer
session.entropy_length 指定了从上面的文件中读取的字节数。默认为 0(禁用)
12、session.use_strict_mode boolean
session.use_strict_mode specifies whether the module will use strict session id mode.
If this mode is enabled, the module does not accept uninitialized session ID.
If uninitialized session ID is sent from browser, new session ID is sent to browser.
Applications are protected from session fixation via session adoption with strict mode. Defaults to 0 (disabled).
13、session.use_cookies boolean
session.use_cookies 指定是否在客户端用 cookie 来存放会话 ID。默认为 1(启用)
14、session.use_only_cookies boolean
session.use_only_cookies 指定是否在客户端仅仅使用 cookie 来存放会话 ID。。
启用此设定可以防止有关通过 URL 传递会话 ID 的攻击。此设定是 PHP 4.3.0 添加的。自PHP 5.3.0开始,默认值改为1(启用)
15、session.cookie_lifetime integer
session.cookie_lifetime 以秒数指定了发送到浏览器的 cookie 的生命周期。值为 0 表示“直到关闭浏览器”。默认为 0。
16、session.cookie_path string
session.cookie_path 指定了要设定会话 cookie 的路径。默认为 /。
17、session.cookie_domain string
session.cookie_domain 指定了要设定会话 cookie 的域名。默认为无,表示根据 cookie 规范产生 cookie 的主机名。
18、session.cookie_secure boolean
session.cookie_secure 指定是否仅通过安全连接发送 cookie。默认为 off
19、session.cookie_httponly boolean
禁止 JavaScript 访问会话 cookie。 此设置项可以保护 cookie 不被 JavaScript 窃取。
虽然可以使用会话 ID 来作为防范跨站请求伪造(CSRF)的关键数据, 但是不建议你这么做。
例如,攻击者可以把 HTML 源代码保存下来并且发送给其他用户。
为了安全起见,开发者不应该在 web 页面中显示会话 ID。 几乎所有的应用都应该对会话 ID cookie 设置 httponly 为 On。
20、session.cache_limiter string
session.cache_limiter 指定会话页面所使用的缓冲控制方法(none/nocache/private/private_no_expire/public)。默认为 nocache。
21、session.cache_expire integer
session.cache_expire 以分钟数指定缓冲的会话页面的存活期,此设定对 nocache 缓冲控制方法无效。默认为 180。
22、session.use_trans_sid boolean
session.use_trans_sid 指定是否启用透明 SID 支持。默认为 0(禁用)
Note:
基于 URL 的会话管理比基于 cookie 的会话管理有更多安全风险。
例如用户有可能通过 email 将一个包含有效的会话 ID 的 URL 发给他的朋友,
23、session.hash_function mixed
session_hash)function 用于指定生成回话ID的算法,0代表md5,1代表sha1
或者用户总是有可能在收藏夹中存有一个包含会话 ID 的 URL 来以同样的会话 ID 去访问站点
当我们使用memcached存储session时,如何通过session_id获取session数据
默认session中的key被存储在前缀memc.sess.key之下。
因此,如果要想通过memcached获取session数据,我们必须指定
memc.sess.key.session_id获取session数据。
获取memcached中存储的session数据
举例:
session_start();
$session_id = session_id();
$key = "memc.sess.key." . $session_id;
$key = $session_id;
例如:$mem->get($key);
php之memcached存储session配置、存储、获取的更多相关文章
- [转]为什么不能用memcached存储Session
以下内容转自:http://www.infoq.com/cn/news/2015/01/memcached-store-session -------------------------分割线---- ...
- 为什么不能用memcached存储Session
Memcached创建者Dormando很早就写过两篇文章[1][2], 告诫开发人员不要用memcached存储Session.他在第一篇文章中给出的理由大致是说,如果用memcached存储Ses ...
- 为什么不能用memcached存储Session?
Memcached创建者Dormando非常早就写过两篇文章[1][2].告诫开发者不要用memcached存储Session. 他在第一篇文章中给出的理由大致是说,假设用memcached存储Ses ...
- session的存储方式和配置
Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.我们控制用户去权限中经常用到Session来存储用户状态,这篇文章会讲下Session的存储方式.在w ...
- 使用jQuery获取session中存储的list集合
在网上查找了很多关于jQuery获取session都不可得,如果大家有更好的方式,欢迎留言 这里是使用jQuery发送Ajax请求到后台获取session jsp中没有代码 js代码 <scri ...
- 基于php使用memcache存储session的详解(转)
web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内增加一条语句就可以了,不过前提你需要 ...
- Laravel 5.1 中 Session 数据存储、访问、删除及一次性Session实例教程
1.Session的由来及其实现 HTTP协议是无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系的.也就是说我们无法在服务器端确认两次请求是否是同一个用户所为,这为我们在一些应用场景中实现 ...
- PHP使用Memcache来存储session 其他【转载】
PHP使用Memcache来存储session 分类:PHP 时间:2015年3月30日 很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么PHP默认的 ...
- 138.更改session的存储机制
修改session的存储机制: 默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方.可以通过设置SESSION_ENGINE来更改session的存储位置,这 ...
随机推荐
- Disruptor学习笔记
前言 以前一直听说有Disruptor这个东西,都说性能很强大,所以这几天自己也看了一下. 下面是自己的学习笔记,另外推荐几篇自己看到写的比较好的博客: Disruptor——一种可替代有界队列完成并 ...
- CentOS 7 安装配置OpenVPN 2.3.12
1.下载安装包 #wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz#wget http://swupdate. ...
- 5. BERT算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- MAC /usr/local 文件夹权限问题
修改文件夹权限 sudo chown -R $(whoami) /usr/local/ 如果失败提示Operation not permitted 或其他权限不足,则需要关闭Rootless Root ...
- rabbitmq启动异常table_attributes_mismatch
rabbitmq启动异常table_attributes_mismatch 2017年01月09日 16:57:50 growithus 阅读数:18 [root@localhost rabb ...
- java.lang.NoSuchFieldError: No static field abc_ic_ab_back_mtrl_am_alpha of type I in class Landroid/support/v7/appcompat/R$drawable
出现java.lang.NoSuchFieldError: No static field abc_ic_ab_back_mtrl_am_alpha of type I in class Landro ...
- Java知多少(75)Object类
Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...
- What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。
原文链接 Github地址 一.陈述 1,我到底能用Python做什么? 我观察注意到Python三个主要流行的应用: 网站开发: 数据科学——包括机器学习,数据分析和数据可视化: 做脚本语言. 二. ...
- js实现选中文字 分享功能
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- linux环境下,对于一个大文件,如何查看其中某行的内容
需求说明: 今天在做mysql数据导入的过程中,导入到最后有一个报错,报某张表不存在.然后就想看看这行到底是在做什么操作的时候报的错误. 报错信息: [mysql@host---- ~]$ cat n ...