我正在使用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。我刚刚学习课程,所以我想知道这样做是否有任何安全问题?这是个坏主意吗?
答案 0 :(得分:7)
session_regenerate_id()
非常适合阻止会话劫持。
更新当前会话ID
session_regenerate_id
- 使用新生成的
每次访问页面时连续旋转session_id。劫持不断移动的目标非常困难。
答案 1 :(得分:0)
我使用您所做的相同方法完成了RIA,我只是在应用程序上设置了SSL以确保安全性。由于Flex和远程处理是无会话的。我建议使用SSL。我的同事还开发了一个用户登录/注销的应用程序,他做了同样的事情。