表单提交上的PHP会话令牌

时间:2016-11-15 17:41:35

标签: php session token

你好,这是interwebz的大师,

我正在关注创建安全用户登录/注册系统的教程,可在此处找到: PHP OOP Login/Registration System

我遇到的问题是表单是在单独的.php文件上处理的,而不是像在视频中那样托管表单的文件。

提交后(form.php):

从book.php:

调用Token类
if(Input::exists()) {

if(Token::check(Input::get('token'))) {
//execute code here
}

调用令牌类(Token.php)

class Token {
public static function generate() {
    return Session::put(Config::get('session/token_name'), md5(uniqid()));
}

public static function check($token) {
    $tokenName = Config::get('session/token_name');

    if(Session::exists($tokenName) && $token === Session::get($tokenName)) {
        //Session::delete($tokenName);
        return true;
    }
    return false;
}

}

我遇到的问题是,如果我不发表评论

//Session::delete($tokenName);

在后续表单提交时删除了令牌。

帖子是通过form.php中的jquery / ajax完成的,因此当表单重新加载错误消息时,初始标记不会刷新。 在下一次提交时,$ tokenName已经从上一次调用中删除,使条件无效或者至少是我认为正在发生的情况。 因为在任何后续提交中,book.php不再执行此处的代码:

if(Token::check(Input::get('token'))) {
//execute code here
}

我只是评论并忽略

Session::delete($tokenName);

或者我应该采取不同的方式吗?

新手在这里请你放轻松......

0 个答案:

没有答案