PHP:使用存储为cookie的令牌防止会话劫持?

时间:2009-11-22 01:38:24

标签: php session cookies token

我正在使用PHP进行RIA。为了防止会话劫持,我引入了一个基于盐,ISO-8601周数和用户IP的登录时生成的令牌。

$salt      = "blahblahblah";
$tokenstr  = date('W') . $salt . $_SERVER['REMOTE_ADDR'];
$token_md5  = md5($tokenstr);
define("token_md5", $token_md5); 

目前,每次请求都通过GET或POST传递,但我想知道是否可以通过将其作为cookie提供来避免这种情况,因为它依赖于用户的IP。我刚刚学习课程,所以我想知道这样做是否有任何安全问题?这是个坏主意吗?

2 个答案:

答案 0 :(得分:7)

session_regenerate_id()非常适合阻止会话劫持。

  

session_regenerate_id - 使用新生成的

更新当前会话ID

每次访问页面时连续旋转session_id。劫持不断移动的目标非常困难。

答案 1 :(得分:0)

我使用您所做的相同方法完成了RIA,我只是在应用程序上设置了SSL以确保安全性。由于Flex和远程处理是无会话的。我建议使用SSL。我的同事还开发了一个用户登录/注销的应用程序,他做了同样的事情。