Как Вы считаете, насколько адекватно после полной загрузки страницы (не только DOM, а именно полной), добавлять при помощи JS скрытый input с token-ом к каждой форме на странице? Юзеров с отключенным JS в любом случае на сайт не пускаю...
До этого вручную прописывал у каждой формы, и при проверке принятых из формы данных в каждый раз проверял token совместно с остальными полями, но что-то это конкретно поднадоело, решил вынести проверку token-а на уровень повыше и захотелось динамически создавать поле с token-ом...
Сергей Протько: Проверка токена в любом случае реализована в бэкэнде, если JS отключен у нас не пускает на сайт, предлагает обновить браузер и включить JS, но даже если кто-то схитрит и пролезет, то без JS после с токеном просто не добавится к отправляемой форме и при проверке в бэкэнде валидация не будет пройдена...
Просто сейчас у каждой формы вручную прописано поле INPUT hidden name=token value=токен, но количество формочек постоянно растет и уже бесит добавлять это поле постоянно.
Да и при динамическом добавлении поля с токеном юзеру придется подождать полной загрузки страницы, а уже потом делать какие-то действия (Плохо это или хорошо - пока не понятно...)
Сергей Протько: кстати я тут юзал сайт qiwi, там у них пока страница полностью не загрузится никакую форму не отправить, скидывает обратно и все, с одной стороны бесит (бывает у них сайт долго грузится и приходится ждать полной загрузки, а с другой стороны это ведь правильно, какая-то лайт-защита от брута )))
Сергей Протько: вот и я думаю, может и лучше dom подождать и добавлять... Можно ли считать такой метод добавления token-а некой дополнительной защитой от брута, мол подожди полной загрузки и уже потом тыкай по кнопкам?
Сергей Протько Там просто в главном контроллере как раз проверяется этот токен, если что-то не так, то отсекает и не дает вообще перейти в валидации остальных данных...
Артур Иванов: брутфорсить csrf токен? Есть метод проще - JWT. Делаете простой json описывающие ограничения (мол действительно на 15 минут, разрешено отправить такую-то форму), и делается подпись. А не имея приватного ключа и используя наприме RSA шансов "подобрать" подпись практически нет.