博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15.10. Session/Cookie
阅读量:5789 次
发布时间:2019-06-18

本文共 1027 字,大约阅读时间需要 3 分钟。

为什么我要在这里提Session和Cookie,这也大型站点必须要处理问题。

15.10.1. Session

在集群环境中与单服务器是不一样的,集群组成可分为调度服务器和节点,节点数量不定,单个节点安装有web服务器,用户每次访问网站调度服务器随机分配一个节点给该用户, 举一个例子:用户在网站上看新闻,点击第一个连接被分配到node 1上去,当他看完这条新闻并单击下一条时,可能被分配到其它节点上,这里刚才建立的session在node 1上, 它就会因失去session而必须重新登录。

所以我们要同步所有节点上的Session, 另外如果能用Cookie代替Session的地方尽量使用Cookie。

15.10.2. Session 共享

解决方案:

  1. 不用Session,使用Cookie取而代之

  2. 共享Session,放到数据库中,放到Memcache中

PHP Session很有解决方案:

查看PHP手册 Session Extensions 章节,重写Session逻辑。

共享Session用Memcache,在php.ini中配置即可

session.save_handler = memcachesession.save_path = tcp://127.0.0.1:10001

15.10.3. Cookie

Cookie 我这里提到cookie是可以实现“单点登录”功能。

一个网站可能不指一组集群系统,如news.example.org, bbs.example.org, blog.example.org 要实现在一处登录即可在其它站点上同时也处于登录状态,就要用到Cookie来实现。

15.10.3.1. Cookie 安全

Cookie存储在用户端,Cookie数据极易伪造。下面提供几个方案。

  • 在Cookie数据上加干扰词

  • 在反向代理上做手脚

  • 负载均衡设备都提供Cookie保护功能

15.10.3.2. cookie-free domains

15.10.3.3. P3P

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

原文出处:Netkiller 系列 手札

本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
花钱删不完负面消息
查看>>
JBPM之JPdl小叙
查看>>
Membership三步曲之进阶篇 - 深入剖析Provider Model
查看>>
前端优化及相关要点总结
查看>>
struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
查看>>
25 个精美的手机网站模板
查看>>
C#反射实例应用--------获取程序集信息和通过类名创建类实例
查看>>
VC中实现文字竖排的简单方法
查看>>
会话标识未更新
查看>>
阿里架构师:程序员必须掌握的几项核心技术能力
查看>>
程序员常用的六大技术博客类
查看>>
Iceworks 2.8.0 发布,自定义你的 React 模板
查看>>
胖哥学SpringMVC:请求方式转换过滤器配置
查看>>
Kotlin 更加优雅的 Builder - 理解 with
查看>>
前端日拱一卒D6——字符编码与浏览器解析
查看>>
深入理解浏览器的缓存机制
查看>>
微软向Linux社区开放60000多项专利:对开源微软是认真的
查看>>
Hoshin Kanri在丰田的应用
查看>>
又拍云沈志华:如何打造一款安全的App
查看>>
克服大数据集群的挑战
查看>>