我可以在$ _SESSION变量中保存什么级别的机密信息?

| 假设您有一个具有信用卡支付功能的购物应用程序。用户登录并开始购物。可以在用户登录后立即从数据库中获取他的信用卡号和密码并将它们保存到会话变量中,以消除在下一步用户将要完成其付款的后续SQL查询中的需要吗? 请在以下情况描述它: a)连接不安全 b)在SSL安全下建立连接 上面的信用卡应用程序就是一个例子。我想了解会话变量的安全性。     
已邀请:
        正如Dagon所说,所有会话数据通常都驻留在服务器上。 但是,仍然存在一些陷阱。首先,在许多配置中,会话变量存储在“ 0”中,并由Web服务器进程的所有者拥有。在共享主机的情况下,可以想象共享主机上的其他用户可以访问会话数据。其次,您可以配置自己的会话处理程序,例如将会话数据存储在数据库中。在这种情况下,还必须考虑该实现的所有安全问题。 最好不要在会话数据中存储信用卡数据;只需将其写入安全位置,并在实际需要时通过某种明智的机制(例如数据库查找)进行检索。     
        即使会话变量存储在服务器上,唯一真正的安全性是会话cookie,如果该cookie被泄露,它将允许任何其他访问者启动相同的会话,因此能够以与原始访问者相同的方式查看页面。 会话cookie只是PHP生成的一个随机字符串,对于任何“中间人”,都可以用纯文本格式查看(除非您使用SSL),从而可以劫持其他人的会话。 从任何方面来看,存储任何类型的敏感数据都是一个潜在的安全问题,这就是为什么今天您需要PCI-DSS认证的托管和环境来处理信用卡信息。即使您从未将其“存储”在服务器上,这仍然适用,只要信息流经设备,您就需要遵守PCI-DSS法规。 这样做的原因是,它有时会在计算机内存中始终可用,并且受感染的计算机可能潜在地具有恶意软件,该恶意软件可以识别该数据并出于恶意将其传播。     

要回复问题请先登录注册