Php 适当地验证会话
我正在试验会话 我试图让它成为一个安全的会话,我让用户只有在通过salt和hash验证了会话变量后,才会收到等于5的会话变量“signin”Php 适当地验证会话,php,session,authentication,redirect,Php,Session,Authentication,Redirect,我正在试验会话 我试图让它成为一个安全的会话,我让用户只有在通过salt和hash验证了会话变量后,才会收到等于5的会话变量“signin” if($passwordhash == $tablehash) { session_start(); $_SESSION['signin'] = 5; header("Location: /~cssgf3/cs3380/lab7/home.php"); 然后我有一个页面,它
if($passwordhash == $tablehash)
{
session_start();
$_SESSION['signin'] = 5;
header("Location: /~cssgf3/cs3380/lab7/home.php");
然后我有一个页面,它通过这个步骤被重定向到被验证的页面:
session_start();
$sessionValue = 5;//$_SESSION['sessionValue'];
$userSession = $_SESSION['signin'];
if($userSession == $sessionValue)
{
我很好奇这是否是验证会话的适当方法。在这一点上,我并不太担心安全性,但我感兴趣的是这是否是安全的,如果不是的话,是否有一种简单的方法来修复它?广义上说,是的,但如果不了解更多的代码,就很难说了
您最好为用户指定一个唯一的值,而不是
INT
值5。广义地说,是的,但是如果不了解更多的代码,就很难说了
您最好为用户指定一个唯一的值,而不是
INT
值5。非常广泛的问题。简单地说,是的,这是通常的方法。
通常是像下面这样的事情需要确保安全
希望这有帮助。这是一个非常广泛的问题。简单地说,是的,这是通常的方法。 通常是像下面这样的事情需要确保安全
希望这能有所帮助。通过盐析和散列进行验证是任何类型的安全性都可能发生的地方,但实际上您应该
将用户会话设置为用户特定的值,该值将在每次登录时更改并在每次页面加载时验证这些会话/DB值,在任何其他执行之前
更多的代码将有助于完全回答这个问题,但我对这个老问题的回答在总体上可能是有用的-一件我没有看到的简单事情,使用session\u regenerate\u id()
在登录后对用户进行身份验证以避免会话固定攻击-有一个详细的解释。您的代码很好,但有点长。为什么不直接比较if($\u SESSION['signin']==5)
。对我来说似乎更简单。我应该补充一点,明确一点,不要依赖一般会话或cookie值(如5或true),让它具有用户特定性通过盐析和哈希进行验证是任何安全性都会发生的地方,但实际上,您应该将用户会话设置为一个特定于用户的值,该值将在每次登录时更改并在每次页面加载时验证这些会话/DB值,然后再执行任何其他操作
更多的代码将有助于完全回答问题,但我对这个老问题的回答通常可能很有用-一件简单的事情我没有看到,在登录后使用session\u regenate\u id()
对用户进行身份验证以避免会话固定攻击-有一个详细的解释。虽然代码有点长,但代码还可以。为什么不直接比较if($\u SESSION['signin']==5)
。对我来说似乎更直截了当。我应该补充清楚,不要依赖一般会话或cookie值,如5或true,使其特定于用户