У меня есть некоторые скрипты PHP POST, что мне нужно, чтобы защитить от атак CSRF и имеют несколько вопросов:защита CSRF в PHP
1) Если я подавать запросы POST в PHP с помощью JQuery без HTML формы, просто получать значения непосредственно из HTML-элементов и отправлять их с помощью jquery, я все еще подвергаюсь риску CSRF?
2) Когда пользователь входит в систему на веб-сайте, я храню свой уникальный токен в переменной сеанса. В скрипте PHP POST я проверяю, установлена ли эта переменная сеанса и имеет то же значение, что и раньше. Разве этого недостаточно? почему необходимо, чтобы токен был включен в HTML-форму?
Благодаря
ОК. что если у злоумышленника есть JS, который может включать фактическую HTML-форму с моего сайта в скрытый iframe. Я видел это в другом примере: не будет ли токен включен в форму, если пользователь посещает веб-сайт злоумышленника во время входа в систему? В этом случае запрос будет аутентичным, поскольку токен есть в форме и в сеансе, или я чего-то не хватает? –
Нет. Если вы поместите рамку внутри формы, поля на странице, загруженной фреймом, не будут включены в данные формы. Вы не можете читать данные через домены через фрейм с JavaScript (если только сайт не сотрудничал с postMessage, которого вы не были бы). – Quentin
извините, что вы имеете в виду под рамкой внутри формы?я имею в виду наоборот, формируем внутри фрейма –