Вопросов пара: 1) В YII2 реализована двухступенчатая защита от CSRF атак - вначале приложение сравнивает csrf - токен из куки, если всё ок, сравнивает токен из метатага. А какой смысл пихать токен в куки, чем плох одноступенчатый метод с использованием лишь метатага? Тем более, если у юзера отключены куки - то выкинет 400. 2) Так и не могу понять до конца смысл защиты. Если используется метод GET, изменяющий состояние, вопросов нет. Вот пример из педевикии : Код (PHP): Мэллори: Привет, Алиса! Посмотри, какой милый котик: <img src="http://bank.example.com/withdraw?account=Alice&amount=1000000&for=Mallory"> Ну а если у мну на сайте такие методы реализованы через POST - каким образом я пострадаю без csrf - токенов? При POST запросе ссылка будет иметь вид Код (PHP): http://bank.example.com/withdraw и все данные будут скрыты в теле запроса. Добавлено спустя 8 минут 36 секунд: На второй вопрос нашел ответ - злоумышленник может сгенерировать скрытую форму, которая отправится в случае перехода незадачливым юзером по ссылке. На первый вопрос пока еще не нашел С яваскриптом практически незнаком, поэтому тут может быть такое объяснение : при создании объекта XMLHttpRequest csrf - токен берется как - раз из куки. Но если через яваскрипт можно спарсить значение метатага, то это ничего не объясняет. Вопрос - можно ли?
ахз. на вид - не нужно это. Хватит одного правильного. А в куках - неправильно хранить. Зато удобно =) Гет получает, а не изменяет. Гетом нельзя менять. Хотя бы потому, что геты грузятся браузерами привентивно порой, порой не грузятся, а берутся из кеша. Гет - это получение весьма статичного контента, который ещё и кешируется, если не запрещено. никаким через картинки. Но можно через js организовать запрос. чего? я не понял.
Приложение не получает из меты CSRF, оно получает его вместе с post-запросом. И насколько я помню, куки можно при желании отключить. В метатаге его удобно держать, поскольку его оттуда достать можно на JS: Код (Text): $("meta[name='csrf-token']") И прицепить к какому-нибудь ajax-у Добавлено спустя 1 минуту 40 секунд: А здесь задавали вопрос: http://yiiframework.ru/forum/ ? Там, между прочим, один из разработчиков Yii2 тусуется, так что там скорее ответят