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);

上一篇:extjs5(项目中文件的加载过程)


下一篇:ASIHTTPRequest缓存策略download cache