Это правда, что подмена заголовка реферера в вашем собственном браузере тривиальна, даже если вы не можете изменить их программно. Хитрость заключается в том, чтобы перехватить запрос после того, как браузер отправит его, но до того, как он достигнет сервера.
Это легко сделать с помощью прокси-сервера перехвата, такого как Burp Suite. Обычно вы указываете браузеру использовать локальный перехватывающий прокси в качестве прокси-сервера. Затем браузер отправит запрос на ваш локальный прокси. Локальный прокси-сервер будет поддерживать запрос и позволит вам изменить все, что вы хотите, в тексте HTTP, включая заголовок реферера. Когда вы будете готовы, вы просто отпускаете запрос, и локальный прокси-сервер отправляет его. Очень просто.
Также стоит отметить, что из этого следует, что если вы не используете TLS на своем веб-сайте, любые переходы на этом пути потенциально могут быть вредоносными и изменять запрос / ответ, если они захотят. Чтобы получить представление о множестве переходов на пути, вы можете попробовать traceroute (хотя некоторые маршрутизаторы просто отбрасывают пакеты, которые заставляют инструмент traceroute работать, поэтому это ненадежное измерение).
Однако в случае чистой CSRF-атаки злоумышленник не может контролировать браузер жертвы. Это означает, что браузер жертвы отправит запрос прямо на веб-сервер, отправив правильный заголовок реферера, как и всегда. Вот почему невозможно изменить заголовок реферера жертвы, хотя заголовки реферера в целом являются ужасной практикой безопасности, поскольку их так легко подделать.
Тем не менее, лучшим решением для борьбы с CSRF является использование токена CSRF. OWASP рекомендует использовать исходный заголовок и CSRF токен.
Надеюсь, это поможет. Если нет, дайте мне знать в комментариях, и я постараюсь уточнить.
person
Freedom_Ben
schedule
17.11.2016