Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Csrf атаки. Anti-csrf token — панацея?
Форумы портала PHP.SU » » HTTP и PHP » Csrf атаки. Anti-csrf token — панацея?

Страниц (1): [1]
 

1. Redya69 - 26 Января, 2015 - 22:43:00 - перейти к сообщению
Вот столкнулся с проблемой Csrf атак на своём сайте.
Читаю как избавится от неё. Везде пишут, что применяют Anti-csrf token и что, якобы, гарантированно спасает.

Как сейчас производится атака:
Пользователю моего сайта присылают ссылку, он по ней переходит, производится POST запрос на мой сайт, где исполняются от его имени какие-то действия.

С Anti-csrf token: что мешает сначала сделать запрос на страницу, где этот токен генерируется, а потом точно также произвести POST запрос уже с этим же токеном?
2. IllusionMH - 26 Января, 2015 - 22:50:27 - перейти к сообщению
Redya69, а он нужен только для операций авторизованных пользователей, и должен привязываться к учетке. Придется сначала зайти под юзером чтобы получить ключ валидный для него.
3. Redya69 - 26 Января, 2015 - 23:01:40 - перейти к сообщению
подсунуть ему ссылку. Он по ссылке переходит, там javascript выполняет два запроса из его браузера: один к странице, где форма с сгенерируемым токеном, второй с хак-POST запросом. Или я что-то не так понимаю?
4. Мелкий - 27 Января, 2015 - 07:38:01 - перейти к сообщению
Redya69 пишет:
что мешает сначала сделать запрос на страницу, где этот токен генерируется, а потом точно также произвести POST запрос уже с этим же токеном?

То, что этот токен будет уже другой. И если в сессии нет токена или не тот - делаете пользователю отлуп "CSRF-токен устарел, отправьте форму ещё раз"
Токен генерируется на сессию или вовсе для каждой формы индивидуально.
(Добавление)
Redya69 пишет:
там javascript выполняет два запроса из его браузера: один к странице, где форма с сгенерируемым токеном

Каким образом? Кроссдоменный запрос. Если сами не сделаете глупость в настройке сервера - он не пройдёт.
5. Ch_chov - 27 Января, 2015 - 08:04:09 - перейти к сообщению
Цитата:
он нужен только для операций авторизованных пользователей, и должен привязываться к учетке
Не должен. Токен обычно создается на основе сессии. session_id + какая нибудь хэш функция.
6. IllusionMH - 27 Января, 2015 - 13:11:29 - перейти к сообщению
Ch_chov, вероятно я не правильно выразился, но все равно есть связь "юзер - сессия - токен".

 

Powered by ExBB FM 1.0 RC1