2014-04-25 49 views
0

我想了解一个很好的方法来保护我的网站免受攻击。我目前使用cookies方法。但是,经过一些网络调查后,我发现Cookie出于安全原因并不适合使用。所以我的其他选择是使用会话。如何使用会话保护我的PHP网站?

我读这篇文章Sessions and security。在Anurag Jain的回复中,他表示该网站应该使用https而不是http,以便会话ID不会被嗅探。

但有几件事我不明白。

当用户登录该网站时。我将运行查询来检查凭证是否与用户名和密码匹配。然后,我会将一些信息存储到不同的会话中(例如,USER_ID,FULL_USER_NAME,TEAM_NAME,ACCESS_LEVEL)

登录并创建会话后,我可以在会话启动后创建session_id()。之后,我可以将会话与IP地址一起保存在数据库表中。但在此之后,我将如何每次进行安全检查以确保此用户是真正创建会话而不是黑客的用户?

如何确保网站安全?“如果会话ID受到攻击,如果攻击者能够复制相同的IP地址,就不能使用它登录?同样,如果我想要多个用户用户从同一个办公室“同一个网络 - 相同的外部IP地址”?我获得了大量的信息,从为How to Create a bulletproof sessions

一篇文章

+0

因为它们的$ _SESSSION ['whatever']将匹配您的数据库表行列。当然你应该使用'https',如果你使用MySQL,我会使用'AES_ENCRYPT()'和'AES_DECRYPT()'。 – PHPglue

+0

@PHPglue,你能更具体一些,并解释更多?什么是$ _SESSION ['whatever']?不能$ _SESSION ['whatever']被泄露?是的,我正在使用MySQL 5.6.13,因此我可以使用您列出的功能。 – Mike

+0

整个问题听起来好像你还没有真正理解到目前为止的会话。 – CBroe

回答

-2

使用cookie,将无法确保

在会话中存储USER_ID,FULL_USER_NAME,TEAM_NAME,ACCESS_LEVEL和 不在数据库中。因此w如果与用户的连接丢失,所有会话将被删除,黑客不能再使用它们。

会话基于连接而非IP进行存储。