Основы CSRF с отношениями SSL и CSRF

Я пытаюсь внедрить CSRF и SSL (они не полностью зависят) и перечисляю ниже свое понимание темы для подтверждения понимания. Пожалуйста, не стесняйтесь исправлять меня о понимании.
Мы видим токен CSRF почти во всех наших безопасных приложениях.

Как работает подделка межсайтовых запросов (CSRF):

Вы вошли в свой банковский счет (например, SBI или JPMC) и просматриваете свои счета, или они просто открыты в вашем браузере только потому, что вы были заняты. Теперь вы получаете электронное письмо, которое может быть текстом/изображением или чем-то еще на следующей вкладке. В момент получения электронной почты такие функции, как onload и т. д., другие функции java-скрипта могут инициировать запрос GET/PUT/POST из вашего браузера без вашего ведома. Теперь следует отметить, что CSRF фактически не может ничего прочитать с вашей защищенной веб-страницы, потому что в тот момент, когда у вас есть правильный SSL, защищенные страницы зашифрованы. А также CSRF не может украсть ваши учетные данные. На самом деле он не может обнаружить токен CSRF, хранящийся внутри скрытого тега на защищенном веб-сайте, потому что он зашифрован. Он работает только после того, как вы аутентифицировали себя на веб-сайте, и запускает запросы, которые обманывают сервер, заставляя его думать, что запрос исходит из браузера, в который вы только что вошли, и, таким образом, сервер работает в соответствии с полученным запросом.

Теперь, когда хакер пытается открыть атаку CSRF, он обманывает браузер, отправляя URL-адрес:

<img src="https://www.bankWebsite.com/transfer?amount=1000&amp;destination=8990">

Таким образом, без вашего ведома, из сеанса, который аутентифицирован вами, запускается запрос о переводе суммы 1000 на счет номер 8990 n БУМ, вас ограбили на 1000 баксов просто так.

Как защитить себя:
Защиту от CSRF можно выполнить несколькими способами:
1) Проверка происхождения запроса из заголовка
2) Проверка цели запрос
3) токен CSRF

Как работает защита токена CSRF:
Токен CSRf присутствует в заголовке/файле cookie. Поэтому, когда хакер обманом заставляет браузер отправить запрос на сервер, токен присутствует только в заголовке, а не в отправленной форме. Поэтому, когда сервер проверяет, получен ли токен CSRF, он пытается сопоставить токен CSRF из заголовка с токеном, полученным из формы/запроса. Если его нет/не совпадает, то сервер определяет, что это атака, и останавливает дальнейшее проникновение запроса.

Прошу вас всех исправить меня, правильно ли я понимаю атаку CSRF, защиту или нет?
Также означает ли это, что без надлежащей реализации SSL CSRF бесполезен?


person Always a newComer    schedule 16.02.2017    source источник
comment
А вопрос...?   -  person Andreas    schedule 16.02.2017
comment
Цель @Andreas состоит в том, чтобы узнать, правильно ли понимание необходимости CSRF и защиты от CSRF, чтобы можно было начать проектирование для проекта.   -  person Always a newComer    schedule 16.02.2017
comment
OWASP: межсайтовая подделка запросов (CSRF)   -  person Andreas    schedule 16.02.2017
comment
То, что вы описали в отношении CSRF, выглядит хорошо, но CSRF и SSL — это две разные проблемы. CSRF должен убедиться, что запросы (для добавления/редактирования/удаления любого запроса) исходят от фактического пользователя, а не от злоумышленника. Однако то, что вы думаете о реализации SSL, является обязательным. Если приложение не использует SSL, токен CSRF может быть украден (но если SSL не реализован, злоумышленник также может делать больше вещей по сравнению с этим, например, прослушивать запрос и получать учетные данные). Также см. goo.gl/qkGU9 и goo.gl/iUEHp.   -  person Savan Gadhiya    schedule 25.02.2017
comment
@SavanGadhiya спасибо, что прочитали его и дали первый ценный комментарий, который я искал. Прочитав ваш комментарий, меня осенила другая мысль. Также обновите вопрос   -  person Always a newComer    schedule 27.02.2017
comment
Я не уверен, почему вопрос получил отрицательный голос. Я пишу дизайн-документ и хотел охватить все возникающие сценарии. Переполнение стека не должно оставаться просто центром кодов для копирования и вставки, но также должно развивать понимание.   -  person Always a newComer    schedule 27.02.2017
comment
Что касается вашего последнего обновления. Также означает ли это, что без надлежащей реализации SSL CSRF бесполезен? Оба необходимы для предотвращения проблем с безопасностью приложения. В случае отсутствия SSL: 1. Реализован CSRF. Злоумышленнику необходимо сначала обнюхать токен CSRF, а затем создать страницу CSRF для использования проблемы CSRF. 2. CSRF не реализован. Злоумышленник может создать страницу CSRF (поскольку не использовать токен CSRF) для использования проблемы CSRF.   -  person Savan Gadhiya    schedule 02.03.2017


Ответы (1)


Прошу вас всех, пожалуйста, поправьте меня, правильно ли я понимаю атаку CSRF, защиту или нет?

да

Также означает ли это, что без надлежащей реализации SSL CSRF бесполезен?

Если вы отправляете токен клиенту и от него в виде простого текста (вместо его шифрования с помощью SSL), злоумышленник может его перехватить.

Если злоумышленник знает, какой токен поставить в данные формы, то защиты нет.

person Quentin    schedule 27.02.2017
comment
Спасибо, Квентин, за подтверждение. - person Always a newComer; 27.02.2017