Вопрос про CSRF

Всем Веру Брежневу!

Итак, есть недопонимание в работе CHttpRequest::enableCsrfValidation

Если злыдень своровал phpsessid, то он получает доступ. Ок, я включаю csrf-валидацию, генерится csrf-токен. Действительно, внутри формы появлется hidden-поле с его значением. Но почему оно не меняется каждый раз, когда я запрашиваю форму, а генерится один раз на сессию? Ведь если я злыдень, и мне надо спереть куки, что мне мешает спереть csrf-токен вместе с phpsessid? Объясните, что я не понимаю в данной цепочке.

Чисто в дополнение к мыслям. Мне тут за плечом подсказывают, что у пользователя может быть открыто несколько разных форм. Тогда придется хранить на сервере массив токенов. В принципе, почему бы и нет. Тогда, злыдень может своровать <i>один из</i> токенов. Но проблемы это не решает все равно, злыдень все так же может утянуть токен заодно с phpsessid.