HTTP Referer является частью заголовка Когда браузер отправляет запрос на веб-сервер, он обычно заставляет Referer сообщить серверу, с какой страницы я ссылаюсь, и сервер может получить некоторую информацию для обработки. Через значение этого поля заголовка мы можем определить исходный адрес доступа к целевому ресурсу.
задний план
Некоторое время назад, когда я учился делать проект, я обнаружил, что картинки, которые существовали в Интернете, были явно процитированы в проекте.
Но это не отображается в моем собственном проекте.
После проверки информации было обнаружено, что эти сторонние веб-сайты настраивалипротивоугонная цепь
Взломайте противоугонную цепочку
Давайте сначала поговорим о принципе противоугонной цепочки 🤔
В протоколе http, если вы переходите с одной веб-страницы на другую, в поле заголовка http будет Referer.
Реферер здесь является орфографической ошибкой по историческим причинам, и с тех пор он используется.
Сервер изображений выполняет защиту от пиявки, определяя, исходит ли реферер из указанного доменного имени.
Если украденный сайт использует протокол https, а ссылка на изображение — http,
Из HTTPS до HTTP-запросов инициированы из-за правил безопасности, а не со ссылкой, для достижения байпаса цепочки безопасности.
Когда официальное изображение выводится, определяется источник (Referer), который является веб-сайтом, с которого осуществляется доступ к изображению.
Если ваш сайт загружает это изображение, то реферером является: адрес вашего сайта;
Адреса вашего веб-сайта точно нет в официальном белом списке, поэтому вы не можете видеть фотографии.
Следовательно, если Referer не отправлен, источника нет. Тогда официальная сторона думает, что к ней обращаются напрямую из браузера, поэтому могут загружаться нормальные картинки.
<meta name="referrer" content="never">
Например 🌰 Например, если вы посмотрите на заголовки запроса изображения в одной из моих статей о самородках, вы увидите реферера