PHP:使用存储为 cookie 的 token 防止 session 劫持?

标签 php session cookies token

我正在使用 PHP 开发 RIA。为了防止 session 劫持,我引入了一个 token ,在登录时生成,基于盐、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。我刚刚开始学习类(class),所以我想知道这样做是否存在任何安全问题?这是个坏主意吗?

最佳答案

用户保留的任何数据都可能被盗;访问者发送的任何数据都可能被欺骗。最好在 session 打开时将远程 IP 存储在 $_SESSION 中,并将远程 IP 与每个请求进行比较。如果它们不匹配,则可能是劫持。生成新 ID 并让用户重新登录。

关于PHP:使用存储为 cookie 的 token 防止 session 劫持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777483/

相关文章:

asp.net - 如何从我的 URL 中删除 ASP.NET session ID?

php - WordPress 编辑器不更新文件 : Unable to communicate back with site to check for fatal errors

php - 使用 guzzle 6 发送 (POST) xml 的正确方法

php - laravel 5.2 中的输入文件?

php - 如何在 OSX 上将 ODBC 添加到 MAMP

ios - session 存储在设备中不起作用

PHP 对象序列化和 session

c# - Application_EndRequest 不会在 404 上触发

javascript - 如果一个 cookie 不存在,则在 Angular 中设置一个 cookie

java - 如何在 Java 中手动将 cookie 添加到 Web 服务调用中?