Можно ли использовать сигнатурный токен в cookie для auth (post и requst only json через ajax)?Вопросы о CSRF
Почему злоумышленник не может получить токен формы в скрытом поле?
Как атакующий совершает атаку CSRF с запросом POST?
Можно ли использовать сигнатурный токен в cookie для auth (post и requst only json через ajax)?Вопросы о CSRF
Почему злоумышленник не может получить токен формы в скрытом поле?
Как атакующий совершает атаку CSRF с запросом POST?
Можно ли использовать один токен в cookie для аутентификации?
Сортировка, если этот файл cookie является только HTTP-протоколом (который защищает от XSS) и SSL, тогда никто не может заходить за этот файл cookie.
Однако браузер пользователя может сохранить этот файл cookie и будет автоматически отправлять его, когда их браузер снова запрашивает страницу из вашего приложения. Это необходимо, когда пользователь осуществляет навигацию по вашему сайту, а также то, как возможна атака CSRF.
Почему злоумышленник не может получить токен формы в скрытом поле?
В атаке CSRF хакер не может читать ваш сайт или файл cookie, потому что он должен быть защищен SSL/HTTPS. CSRF работает путем обмана вашего браузера, отправляя свои данные вместе с вашими защищенными данными на ваш сайт.
Таким образом, значение в скрытом поле является частью защиты по умолчанию от CSRF - у них есть секретное значение в файле cookie (который хакер может обмануть браузер в повторную отправку, но не может видеть или редактировать), и то же значение в скрытом поле ввода на зашифрованной странице (к которой хакер не может добраться). Если cookie и скрытое значение не совпадают, у вас есть атака CSRF.
Как атакующий совершает атаку CSRF с запросом POST?
Хорошо, предположим, что у вас есть безопасный веб-сайт. Вы можете войти на этот сайт с помощью SSL, и вы получите HTTP-протокол проверки подлинности SSL-аутентификации, который позволит вам войти в систему.
Теперь у меня есть новая страница на совершенно другом сайте. Если я свяжусь с вашим сайтом с моего, тогда, когда вы нажмете на эту ссылку, он покинет мой сайт и отправится к вам, передав ваш файл cookie.
Если я добавлю на свою страницу HTML <form>
, что POST на вашем сайте происходит то же самое: браузер возвращается на ваш сайт и отправляет любые данные в форме вместе с вашим файлом cookie.
Обратите внимание, что я не читал ни ваш файл cookie, ни любые страницы вашего сайта, так как оба они защищены SSL-шифрованием.
Для полного эффекта я могу скрыть эту форму на странице, чтобы пользователь даже не осознавал, что отправляет их обратно на ваш сайт.
Тривиальный пример этого - функция «Как» на Facebook - они сейчас исправили это, я думаю, но какое-то время я мог обмануть ваш браузер (без доступа к вашим данным), чтобы отправить ваш файл cookie для проверки на Facebook действие, в котором говорится, что вам нравится то, что я хочу.
Просьба уточнить ваш первый вопрос. – Gumbo