Как мы можем узнать, правильно ли наш сервер выдает запрещенную ошибку 403 или нет? Я хочу знать, потому что использовал код для файла .htaccess, который используется для блокировки ссылающихся сайтов и спам-ботов.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} domain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain3\.com [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
Я заблокировал веб-сайт с помощью этого кода, но когда я захожу на этот веб-сайт и нажимаю на ссылку своего веб-сайта, мой веб-сайт открывается для меня нормально. Разве я не должен получать 403 запрещенную страницу, поскольку веб-сайт реферера указан в файле .htaccess?
Как я могу проверить, поддерживает ли мой сайт запрещенную страницу 403 или нет? Код правильный?
но когда я захожу на этот веб-сайт и нажимаю на ссылку своего веб-сайта, мой веб-сайт открывается для меня нормально. Разве я не должен получать 403 запрещенную страницу, поскольку веб-сайт реферера указан в
.htaccess
файл?
Для нормального линка, при нормальных условиях да. Вы ожидаете, что запрос будет заблокирован. Однако блокировка с помощью Referer
(Заголовок HTTP-запроса) ненадежный.
Referer
заголовок.Referer
. Фактически, с HTML5 вам нужно только установить rel="noreferrer"
(два r) атрибута привязки, чтобы браузер не отправлял Referer
заголовок (часть политики реферера).Referer
заголовки на всех ссылках с веб-сайта.(Обратите внимание, иногда это «Реферер» (1 р), иногда «Реферер» (2 р).)
Ссылка:
https://stackoverflow.com/questions/5033300/stop-link-from-sending-referrer-to-destination
Есть много способов подделать запрос. Вы можете использовать Postman (https://www.getpostman.com/postman), например, или используйте библиотеку, такую как curl или request.
В вашем случае вам просто нужно изменить поле Referer в заголовке.