Моя сессия не установлена, и я не знаю, почему ...CSRF Session лексема не работает
public static function generate($key)
{
$extra = self::$doOriginCheck ? sha1($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']) : '';
$token = base64_encode(time() . $extra . self::randomString(32));
$_SESSION[ 'csrf_' . $key ] = $token;
return $token;
}
Я использую, что для генерации ключа. На моем журнале в форме, после включения моего файла сеанса, я использую:
$token = CSRF::generate("token"); // class name is CSRF
я затем использовать его $token
как скрытое значение, которое представляется вместе с формой.
Теперь, чтобы проверить это, я использую функцию под названием чек() (это та часть, где брошено исключение:
public static function check($key, $origin, $throwException=false, $timespan=null, $multiple=false)
{
if (!isset($_SESSION[ 'csrf_' . $key ]))
if($throwException)
throw new Exception('Missing session token.');
else
return false;
....
Я проверяю его следующим образом:
CSRF::check($token, $_POST, true, 60*10, false);
($ token - токен, отправленный) Почему не сохраняется токен в сеансе?
BONEHEAD ошибка !!!! Огромное спасибо!!! : D –
@ user2738336 Не беспокойтесь. У меня было несколько современных мозгов! –