Вспомнил. На самом деле тут была с год или два назад такая тема, там был чувак такой... в общем, он утверждал, что сессия - единственная защита от csrf. Я сейчас генерю токен по тому же принципу, как и для авторизации и кладу его как скрытое поле в форму, ну и при получении формы проверяю. Yii, к примеру, защиту от csrf делает похоже, но токен сажает в куку... думаю, в основном из-за удобства и универсальности использования.
Так вот тот чел утверждал, что подобная система ломается и этот токен вытаскивается с исходной страницы. Каким образом, к сожалению, объяснить не смог - сослался на великую хакерскую тайну.