Как правильно добавить токен CSRF с помощью PHP

Я пытаюсь повысить безопасность форм на моем веб-сайте. Одна из форм использует AJAX, а другая представляет собой простую форму «свяжитесь с нами». Я пытаюсь добавить токен CSRF. Проблема, с которой я сталкиваюсь, заключается в том, что токен только иногда появляется в «значении» HTML. В остальное время значение пустое. Вот код, который я использую в форме AJAX:

PHP:

if (!isset($_SESSION)) {
    session_start();
$_SESSION['formStarted'] = true;
}
if (!isset($_SESSION['token']))
{$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;

}

HTML

 <form>
//...
<input type="hidden" name="token" value="<?php echo $token; ?>" />
//...
</form>

Есть предложения?

81
задан Ken 9 June 2011 в 04:09
поделиться