Я пытаюсь заблокировать загрузку контента, если к нему обращаются напрямую или из недопустимого домена. Для этого я использую .htaccess
. Итак, моя логика:
- Доступ напрямую : пустой реферер.
- Недопустимый домен : домен реферера отличается от разрешенного домена.
Мне также нужно заблокировать другие типы файлов. jpg|jpeg|gif|png|bmp|zip|ppt|pptx|ai|pdf|doc|xls|xlsx|psd|mov|svg
Чтобы получить больше контекста, контент (и следующие .htaccess
) размещаются в другом домене, из которого я хочу иметь возможность загружать контент. Допустим, содержимое находится в x.com
, и я хочу иметь возможность загружать содержимое только в example.com
Итак, это мой .htaccess
SetEnvIf Referer "^https://www.example.com/" letitpass
Order Deny,Allow
Deny from all
Allow from env=letitpass
ErrorDocument 403 /403.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com/.*$ [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp|zip|ppt|pptx|ai|pdf|doc|xls|xlsx|psd|mov|svg)$ - [F,NC,L]
</ifModule>
Это работает частично, как и ожидалось. Проблема в том, что некоторое содержимое (например, изображение) внутри документа PHP или HTML не загружается даже в разрешенном домене.
Это результат: (скриншот из example.com/a-page/
)
- Изображение
<img src="https://x.com/image.png">
. Работает как положено. Загружается только в example.com
- iframe с документом
.pdf
, <iframe src="https://x.com/file.pdf">
. Работает как положено. Загружается только в example.com
- iframe с документом
.php
. Документ имеет img (x.com/image.png
) и файл PDF (x.com/file.pdf
). <iframe src="https://x.com/document.php">
. Это не не работает, как ожидалось. Страница загружается только в разрешенном домене, и это нормально, но некоторое содержимое, например изображение, не загружается
Есть идеи?
Спасибо!