- 浏览: 160875 次
- 性别:
- 来自: 杭州
文章分类
最新评论
1:如何传输会话ID
会话ID在cookie中发送,cookie的名字就是会话名,在下一次调用session_start时,php会从这个cookie获得会话ID,并检查与给定相关联的会话程序存贮,如果没有得到数据,就创建一个新的数据集。但是,一些用户将浏览器配置为不接受cookie。如果会话机制完全依赖于cookie,那么这就有问题了。php对此有个方案,当它探测到不能使用cookie时,它可以将会话ID作为参数放在页面访问的URL中。这样做的优点是即使用户禁止了cookie,我们也能够跟踪用户在Web程序中的进展。要启用这种功能必须打开php.ini中session.use_trand_sid,并且确保session.onlu_cookies配置选项设置为0。尽管这个很方便,但是不常用,将会话ID放在明文的cookie中已经形成了一个安全问题。
2:页面缓存
对于会话数据要考虑的问题之一是浏览器缓存。客户机Web浏览器利用这种特性将下载的页面副本保存在本地机器上,从而避免从新获得页面。对于静态内容,这可以节省时间和网络宽带,因为用户可能多次访问给定的页面,而页面的内容已经保存在本地机器上了。其他网络设备也可能进行页面缓存。有些网络上有代理服务器,它们缓存HTML数据,一些大型Web站点可能有专用的缓存机器,它们唯一的工作就是减少Web应用服务器的流量。但是对于敏感内容页面缓存可能造成危害。不缓存这些信息,php提供一个session_cache_limiter的函数。
这个函数最常用的值和返回值是:public这表示任何人都可以缓存这个页面及相关内容。这适合静态内容。
private这告诉客户机可以缓存这个页面中的数据,其他设备比如代理服务器和网络设备不应该缓存它,这适合有点儿敏感的静态内容。
nocache(默认值)这告诉途中的任何设备都不应该缓存这个页面内容。这适合敏感或动态的内容。
no-store这指示所有设备和计算机不应该缓存页面内容和任何关联的内容。
这可以控制页面在不同的缓存中存储多长时间。session_cache_expire函数在会话中控制。这个函数返缓存过期时间的当前值,以分钟为单位。如果传递参数,就将心的过期时间设置为这个值。默认3小时(180分钟)
$timeout = session_cache_expire();
session_cache_expire(15);
session_start();
echo "the cache expire timeout:{$timeout}min";
通过使用比较短的缓存过期时间就可以再一定程度上获得缓存的好处,同时不破坏应用程序的动态性质。
php.ini这这里选项的默认值
session.cache_liliter nocache
session.cache_expire 180
3:破坏会话
1>破坏一个会话分三个单独的部分,每个部分需要不同的代码首先需要破坏会话数据,这些数据在默认的情况下存储在服务器硬盘上,这要使用session_destroy();
2>第二步是破坏事件的会话,这需要消除会话cookie。通过使用setcookie函数并指定一个过去的时间久可以再客户机上消除会话cookie。如果没有执行这一步,那么用户以后对这个站点的请求会附带发送他的会话cookie,而且一会调用session_start时仍然会返回同样的会话ID。
3>最后一步是破坏$_SESSION超级全局变量,从而删除与会话管理的任何数据,办法给它赋一个新值。
session_destroy();
setcookie(session_name(),'',time() - 3600);
$_SESSION = array();
4:会话存储如何工作
在默认情况下,php将会话写入一个文件并将它放在session.save_path配置选项的指定位置。
在穿件一个新会话并且分配一个会话ID时,php在这个目录中写一个文件,文件名以sess_开头,以会话ID结束。每次在泽火革会话下操作的页面完成执行时,php将$_SESSION数组中的数据写入这个文件。下一次启动统一会话php从这个文件装载并且重新创建这个数组。php定期遍历这些文件,寻找过期的会话并且删除它们。这适合中小型的Web应用程序。但是,当编写大型的Web应用程序并开始跨多个服务器负载时,就会出现一个问题。在这种情况下属于统一会话的不同请求可能会被发送到不同的服务器。如果会话数据值保存在一台服务器上的存储文件中,那么就无法从另一台服务器访问它!一种可能的解决方案借助于给予网络的文件系统。封号的解决方案是使用数据库进行存储。因为数据库具有良好的可靠性,并发性和事务处理的功能。session_set_save_handler函数正是为此设计的。这个函数接收到 参数是6个函数的名称,应该用这些函数进行会话处理。
open这个函数用来开始会话存储机制。它必须在成时放回TRUE在失败时返回FALSE。
close这个函数关闭并终止会话存储操作。它在成功时返回TRUE失败时返回FALSE。
read当从存储中装载会话数据时使用这个函数。这个函数的参数是要获取器数据的会话ID。它在成功时放回请求的会话数据。在失败时返回“”。
write这个函数将给定的会话ID的所有数据写到存储中。写入的这些数据时一大段文本。这个函数在成功时返回TRUE失败返回FALSE。
destroy当破坏与指定的会话ID相关联的数据时,调用这个函数。它在完成时返回TRUE。
gc这个函数对存储系统中的数据进行垃圾收集。传递给这个函数的参数是会话数据的有效期(秒数).这个函数子啊成功时返回TRUE。
发表评论
-
实时编辑表格
2014-06-03 10:08 751实时编辑表格 -
手把手教你在Ubuntu上安装Apache、MySql和PHP
2013-07-11 15:25 01:首先安装apache:打开终端(ctrl+Alt+t), ... -
正则取a
2013-04-17 16:29 0<a[^>]*href=["'](?[^ ... -
操作字符串
2013-04-09 15:42 735strpos() - Find the position ... -
php oracle CLOB
2013-03-05 10:49 21541.php insert oracle 的CLOB字段 ... -
ckeditor配置
2013-04-09 15:42 1175// 界面语言,默认为 'en'config.langua ... -
格式化文件大小
2013-04-09 15:41 826function formatBytes($bytes) ... -
PHP显示Deprecated: Assigning the return value of new by reference is deprecated in
2013-04-09 15:41 898昨晚用Spreadsheet_Excel_Rea ... -
PHP的位运算
2013-01-09 10:34 837$a & $b and(按位与) $a | $b o ... -
cookie和会话(二)
2012-12-07 23:34 1708会话 除了能够在客户机和服务器之间发送少量信息外,还 ... -
cookie和会话(一)
2012-12-05 23:04 1360cookie解决了跟踪各个访问者或用户,服务器利用cook ... -
(转)匹配中文
2012-11-27 17:13 1000在javascript中,要判断 ... -
php+jquery+ajax+json简单小例子
2012-11-22 23:52 75037直接贴代码: <html> <titl ... -
PECR
2012-11-20 22:13 985经常使用的分隔符是正斜线(/), hash符号(#) 以 ... -
几个经典函数
2012-11-20 00:19 9331:是否为邮件 function is_email($em ... -
html2fpdf HTML转换为PDF
2012-11-14 12:33 6482下载html2fpdf包: downurl:http://s ... -
检查浏览器版本类
2012-11-09 13:11 770class BrowserDetector { var $U ... -
匹配链接
2012-10-30 11:43 807有一段类似下面的代码,匹配所有的链接地址: $code = ... -
PHP获取类名及所有函数名
2012-08-24 11:48 11763PHP获取类名及所有函数名1.获取行号、文件路径文件名、类名、 ... -
获取<meta>中的content标签内容
2012-02-24 09:04 2028php函数:$tags = get_meta_tags ( ' ...
相关推荐
cookie-session, 基于简单cookie的会话中间件 cookie会话 基于简单cookie的会话中间件。用户会话可以通过 Cookies 以两种主要方式存储: 在服务器上或者在客户端上。 这个模块在cookie中存储会话数据,而像 express...
这是两个视频,主要讲述了cookie的设置,访问,删除的一些操作;会话的设置,删除的一些操作,及cookie和会话的一些区别及联系。对一些学生对cookie和会话的理解有帮助。
PHP 会话控制 cookie 基础教程
介绍cookie种类以及在整个会话中工作原理和过程,内容介绍比较通俗易懂,主要针对在了解网页访问中,一些解析和破解等问题、
使用Cookie进行会话管理.docx
会话技术简单介绍,会话可以简单的理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决的一些问题?每个用户与服务器进行交互的过程中,...
express-socket.io-session, socket.io 共享基于cookie的会话中间件 express-socket.io-sessionsocket.io 共享基于cookie的会话中间件。 使用英镑表示的> 4.0.0 和英镑> 1.0.0,不支持向后兼容。帮助我注意错误或者...
针对基于源IP会话保持的IPVS在高速代理上网环境中存在的会话失效和负载不均衡问题, 研究了LVS系统的设计原理与实现方法, 并结合Web应用中cookie会话保持机制, 提出了基于cookie会话保持的改进方案。实验结果表明, ...
cookie、session会话技术
NULL 博文链接:https://hello-nick-xu.iteye.com/blog/2103300
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。...
cookie会话技术
购物车的四种做法(hidden、url重写、cookie、会话)
第五章 cookie与session会话技术思维导图.png
一、cookie机制和session机制的区别 ...... 二、会话cookie和持久cookie的区别 ......
pycookiecheat:从浏览器的已验证会话中获取Cookie,以便在Python脚本中使用
最好为快速会话维护一个 htttpOnly cookie(以验证用户并通过 XSS 抢夺 cookie 来防止重放攻击),同时在客户端可访问和修改的 cookie 中存储一些会话状态。 客户端会话在req.clientSession ,类似于 connect/...
会话跟踪技术cookie,session
SANGFOR_AD_V5.2_Cookie会话保持配置及说明指导书.pdf
PHP会话控制SESSION与COOKIE