Из того, что я узнал до сих пор, цель токенов - не дать злоумышленнику подделать отправку формы.
Например, если на веб-сайте была форма, в которую вводились элементы, добавленные в вашу корзину, и злоумышленник мог спамить вашу корзину с элементами, которые вам не нужны.
Это имеет смысл, поскольку для формы корзины покупок может быть несколько допустимых входных данных, и все, что нужно сделать злоумышленнику, это узнать товар, который продает веб-сайт.
Я понимаю, как работают токены, и в этом случае они обеспечивают безопасность, поскольку они гарантируют, что пользователь действительно заполнил и нажал кнопку «Отправить» формы для каждого элемента, добавленного в корзину.
Однако добавляют ли токены какую-либо защиту в форму входа пользователя, для чего требуются имя пользователя и пароль?
Поскольку имя пользователя и пароль очень уникальны, злоумышленник должен знать как для того, чтобы подделка логина работала (даже если у вас не было настройки токенов), так и если злоумышленник уже знал это, он мог бы просто войти на сайт сам. Не говоря уже о том, что CSRF-атака, при которой пользователь сам входит в систему, в любом случае не имеет никакой практической цели.
Верно ли мое понимание атак и токенов CSRF? И они бесполезны для пользовательских форм входа в систему, как я подозреваю?
Ответы:
Да. В общем, вам нужно защитить свои формы входа от CSRF-атак, как и любые другие.
В противном случае ваш сайт уязвим для своего рода фишинговой атаки на доверенный домен. Короче говоря, уязвимая к CSRF страница входа позволяет злоумышленнику делиться учетной записью пользователя с жертвой.
Уязвимость выглядит так:
В качестве подходящего примера рассмотрим YouTube . YouTube позволил пользователям просматривать записи «своей» истории просмотров, а их форма входа была уязвима для CSRF! Таким образом, в результате злоумышленник может создать учетную запись с паролем, который он знает, и с помощью этого войти в YouTube. учетную запись - отслеживая, какие видео смотрела жертва.
В этой ветке комментариев есть некоторое обсуждение, которое подразумевает, что это могло "только" использоваться для нарушений конфиденциальности как это. Возможно, но процитирую раздел в статье CSRF Википедии :
Акцент на "новые атаки". Представьте себе влияние фишинг-атаки на ваших пользователей, а затем представьте, что фишинговая атака работает через собственную доверенную закладку пользователя на вашем сайте! В документе, указанном в вышеупомянутой ветке комментариев, приводится несколько примеров, выходящих за рамки простых атак на конфиденциальность.
источник
http://good.com/login.html
в одном клиенте, проанализировать вложенный токен CSRF, а затем опубликоватьhttp://bad.com/login.html
, содержащую измененную форму, которая отправляет свое имя пользователя, пароль и токен независимо от того, что вводит жертва. CORS не применяется, потому что вы ' У нас есть два отдельных клиента: злоумышленник и жертва. Итак, еще раз повторю вопрос: действительно ли защита CSRF работает для форм входа в систему?Ваше понимание верно - весь смысл CSRF в том, что злоумышленник может подделать законно выглядящий запрос заранее. Но это невозможно сделать с помощью формы входа в систему, если злоумышленник не знает имя пользователя и пароль жертвы, и в этом случае существуют более эффективные способы атаки (войдите самостоятельно).
В конечном счете, единственное, что может сделать злоумышленник, - это доставить неудобства вашим пользователям, рассылая спам при неудачном входе в систему, когда система безопасности может заблокировать пользователя на некоторое время.
источник
Да , поэтому другие сайты не могут имитировать вашу форму входа! Так просто, как, что.
Чего они могут достичь, делая это?
n
нет. раз, можно избежать.источник
Предварительная регистрация для проверки CSRF не имеет большого смысла ИМХО.
Спасибо @squiddle за ссылку: seclab.stanford.edu/websec/csrf/csrf.pdf , мы можем прочитать на самой первой странице:
Если вы попытаетесь выполнить предварительную регистрацию в CSRF, вы дадите потенциальному злоумышленнику возможность удалить действительный код вашего веб-сайта! Затем он / она сможет повторно опубликовать токен, победив цель.
Возможно, злоумышленник может попытаться угадать имя пользователя вашего сайта. Что я сделал, если IP-адрес пытается угадать, скажем, 10 имен пользователей, но я просто попал в черный список.
источник