3.5 安全:
对web架构的session介绍就是他们本身对黑客提供一种闯入该系统的方式。会话的无效控制往往会声称自己是一个基于网络应用程序最脆弱的领域。有各种基于会话类型的攻击和其中许多可以被定为模拟攻击,也被称为“会话劫机” 。而所谓的'会话劫机'就是发生攻击者试图接管2台计算机间所建立的TCP会话的时候。在这个攻击类型中,攻击者试图通过冒充该用户来访问其他用户的会话。例如,劫机用户的会话可允许用户查看已保存的设置,其中可能包括个人敏感信息,或在匿名身份下粘贴到论坛里。至少,这些攻击的类型要求恶意用户获得有效的会话标识符sessionID,因为这是用于身份验证最起码的信息。
攻击者获得一个有效的session标识最少有3种方法:
--prediction(预测);
--capture(捕获);
--fixation(固定);
‘预测’攻击就是包括猜测一个有效的会话标识符来获得访问。
‘捕获’攻击是很容易的,因此更加平常。当使用cookies来存储sessionID时,使用它,因此,一个web浏览器的弱点就是利用它来获得这个信息。
‘固定’攻击欺骗受害者使用由攻击者选择的sessionID。如果成功了,它将选择最简单的方法来获得一个正确的session id.
使用MySQL数据库来作为会话管理执行的一部分能提供一个安全补充层,通过转移这些会话标识符到数据库层。虽然使用数据库作为会话存储并不能确保您的应用程序无法破解,它只会因此变得更困难和复杂。
MySQL自带一套内置安全特征,包括:
--一套基于ACL的安全模式;
--支持yaSSL;
--数据加密;
--从主机和IP地址到列级的细粒度访问系统;
--权限管理系统能够连接和执行数据操作;
--登录连接语句;
3.6 高可用性和MySQL集群
有时会话管理架构需要我们使用的数据库也能达到5个9的高可用性,在没有降低性能或预算的情况下。为了达到可用性和扩展性要求,典型的应用是使用昂贵的商业集群方案或是大的SMP系统。而使用MySQL集群,一方面能非常高效地扩展,达到高可用性,保持高性能特征,与商业系统比起来花费一小部分费用。
MySQL集群就是MySQL数据库的一个高端版本,尤其设计用于容错性,需要扩展和高可用性的关键应用,它还支持把数据存储在内存或磁盘上,通过shared-nothing来集群,并不需要昂贵的共享存储来扩展。
在下图中是一个会话管理架构利用MySQL集群来作为一个会话存储:
