Введение в CSRF?
CSRF, XSRF или мошенничество с перекрестными ссылками - это тип атаки, которая происходит на веб-сайте, когда вредоносный веб-сайт делегирует свой запрос другому веб-сайту или веб-приложению с аутентифицированным пользователем. В этом типе атаки, используя аутентифицированный браузер жертвы, злоумышленник может получить доступ к веб-сайту полностью или частично.
Как это работает?
- Это работает, только если потенциальная жертва аутентифицирована.
- Злоумышленник может войти на веб-сайт, минуя процесс аутентификации с использованием CSRF-атаки.
- CSRF-атаки начинают использоваться в тех случаях, когда жертва, обладающая дополнительными правами, выполняет одно действие, а другие не могут получить доступ или выполнить эти действия. Например, онлайн-банкинг.
CSRF-атака состоит из двух основных частей
- Первым шагом является привлечение пользователя / жертвы для перехода по ссылке или загрузки вредоносной страницы. Социальная инженерия используется атакующим, чтобы обмануть жертву.
- Второй шаг - обмануть жертву, отправив поддельный запрос в браузер жертвы. Эта ссылка перенаправит законно выглядящие запросы на веб-сайт. У злоумышленника будут данные или данные жертвы, которые он должен искать, жертва заполнила бы его, думая, что запрос является законным. Злоумышленник также получит информацию о связанных файлах cookie с браузером жертвы.
Ключевые понятия CSRF
- Злоумышленник отправляет вредоносные запросы на сайт, на котором пользователь посещает, злоумышленник считает, что жертва проверена на этом конкретном сайте.
- Браузер жертвы проходит проверку подлинности на целевом сайте и используется для направления вредоносных запросов на целевой сайт.
- Здесь браузер жертвы или сайт с внедренными на нем профилактическими методами CSRF не являются уязвимыми, уязвимый веб-сайт является основной уязвимостью.
Как предотвратить подделку межсайтовых запросов (CSRF)?
Существует целый ряд профилактических методов CSRF, среди которых мало:
- Выйдите из веб-приложений, не работая над ним.
- Защитите свои имена пользователей и пароли.
- Не позволяйте браузерам запоминать пароль.
- Пока вы работаете в приложении и вошли в него, избегайте просмотра.
Анти-CSRF токены
Наиболее распространенной реализацией для прекращения подделки межсайтовых запросов (CSRF) является использование токена, который связан с выбранным пользователем и может быть найден как скрытая форма в каждом состоянии, динамическая форма присутствует в онлайн-приложении.
1. Этот токен, называемый токен CSRF, работает следующим образом:
- Клиент запрашивает страницу HTML, которая имеет форму.
- В ответ на этот запрос сервер добавляет два токена. Он отправляет один из них в виде файла cookie и сохраняет другие токены в скрытом поле формы. Эти токены генерируются случайным образом.
- Клиент отправляет оба токена обратно на сервер после отправки формы. Токен cookie отправляется как токен, а токен формы отправляется внутри данных формы.
- Сервер не отвечает или отклоняет запрос, если запрос не содержит оба запроса.
Теперь злоумышленник, который пытается подделать запрос, должен будет угадать токены anti-CSRF вместе с паролями аутентификации пользователя. Эти токены становятся недействительными через некоторое время и после завершения сеанса. Это заставляет злоумышленника угадать жетон.
2. Файлы cookie того же сайта
Существуют некоторые файлы cookie, связанные с источником или веб-сайтом, и когда запрос отправляется этому конкретному источнику, файлы cookie отправляются вместе с ним. Такие запросы называются запросами перекрестного происхождения. Во время этого процесса куки отправляются третьим лицам, что делает возможными CSRF-атаки.
3. Тот же атрибут файла cookie сайта
- Чтобы предотвратить CSRF-атаки, можно использовать тот же атрибут cookie сайта. Отключает стороннее использование для определенного куки.
- Это делается сервером при настройке cookie; Затем он запрашивает браузер отправлять cookie только тогда, когда пользователь напрямую использует веб-приложение.
- Теперь, если кто-то попытается запросить что-то из веб-приложения, браузер не будет отправлять cookie.
- Тем не менее, предотвращает атаку CSRF.
Это имеет ограничение: одни и те же файлы cookie сайта не поддерживаются в современных браузерах, в то время как веб-приложения, использующие файлы cookie того же сайта, не поддерживаются в старых браузерах.
Примеры CSRF
Ниже мы объяснили некоторые примеры CSRF:
1. Использование GET-запросов:
Предположим, что вы создали и разработали веб-сайт banking.com для выполнения таких действий, как онлайн-транзакции, с помощью запросов GET. Теперь умный злоумышленник, который знает, как создать вредоносный URL, может использовать элемент, чтобы браузер молча загружал страницу
Пример HTML-элемента изображения, содержащего вредоносный URL:
2. Один из следующих методов может быть использован для того же:
- Отправив электронное письмо с содержанием HTML
- Размещая скрипт или вредоносный URL на страницах, которые пользователь, скорее всего, посетит во время онлайн-транзакций.
3. Использование POST-запросов
Существует общее заблуждение о запросах HTTP POST, что CSRF-атаки могут быть предотвращены путем разрешения запросов HTTP POST, что на самом деле неверно. Злоумышленник может создать форму с использованием HTML или JavaScript и использовать функцию автоматической отправки для отправки запроса POST, не требуя от пользователя нажатия кнопки отправки.
Вывод
Куки-файлы уязвимы, так как они отправляются автоматически вместе с запросом, что позволяет злоумышленникам реализовать CSRF и отправлять вредоносные запросы. Эффект уязвимости CSRF также зависит от привилегии жертвы, чей Cookie отправляется с запросом атакующего. Хотя получение данных не является основной областью атаки CSRF, изменения состояния, несомненно, окажут неблагоприятное влияние на используемое веб-приложение. Поэтому рекомендуется не использовать на вашем веб-сайте превентивные методы для защиты вашего сайта от CSRF.
Рекомендуемые статьи
Это было руководство к тому, что такое CSRF. Здесь мы обсудили ключевую концепцию, токены Anti-CSRF, как это работает и примеры CSRF. Вы также можете просмотреть наши другие Предлагаемые статьи, чтобы узнать больше -
- Что такое Java Hibernate?
- Что такое ASP.NET?
- Что такое AWS Lambda?
- Что такое XHTML?