在Session中的php随机数,如何比较?

时间:2014-11-20 23:02:23

标签: php security session

编辑:正如下面由Cheery所解释并由我编辑的简洁性:

仅当会话ID由另一个现有会话替换时,会话值才适用于给定的会话ID - 如果您担心窃取会话ID值,则需要安全步骤。会话在服务器上。您只能欺骗会话ID,但它应该是现有会话的ID,否则$ _SESSION将为空。


我找不到与我的问题有关的任何内容:

我试图保护自定义后台,并在验证密码后输入以下代码:

if ($hasher->CheckPassword($password_safe, $retrieved_password)) {
    //Initiate the session
    session_start();
    $_SESSION["user_id"] = md5(microtime(true));
    $_SESSION["ip"] = $_SERVER['REMOTE_ADDR'];
    header('Location: main.php');
} else {
    //LOGIN ATTEMPT FAILED
}
unset($hasher);
}  

由于这仅供我自己使用,因此我不关心与Ip检查部分相关的问题,也不关心存储用户ID。

我不知道如何做的是比较什么

$_SESSION["user_id"] 

到私人网页上。

我意识到我需要存储在其他地方的相同值,将它放到db中是唯一的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用javascript localstorage保存它,并在需要时调用它。

示例

<script>
window.localStorage.setItem("session_id","37363732");    
</script>

在php中你称之为

<?php
$session_id = "<script>
              var sess_id = window.localStorage.getItem("session_id");
              document.write(sess_id);
              </script>";
?>

或者这个

<?php
$session_id = "<script>
              document.write(localStorage.session_id);
              </script>";
?>

文件撰写(localStorage.save);