Как включить защиту горячей ссылки без жесткого кодирования мой домен в файле конфигурации Apache?

Вам будет нужен Пароль администратора для домена, с которым Вы пытаетесь соединиться. Если у Вас есть тот пароль, то повторно выполненный keytab поколение, с помощью того пароля. Если Вам нужен кто-то еще, чтобы или дать Вам пароль, или изменить его на тот Вы использовали, то теперь хорошее время для размышления о хорошем объяснении.

4
задан 13 April 2017 в 15:14
1 ответ

А что насчет проверки совпадения хоста с реферером? Например,

RewriteCond %{HTTP_REFERER} !%{HTTP_HOST}

Edit

Это не сработает, как указано в OP. Для Apache 2.4 вы можете использовать:

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"

Для 2.2 вы можете написать небольшой обработчик в mod_perl или mod_python, который мог бы выполнять сравнение и выдавать ошибку 403.

Чтобы добиться этого с помощью mod_python:

Создайте файл в ваш docroot (в моем случае / var / www /) называется hotlink.py

from mod_python import apache

def headerparserhandler(req):
    if req.headers_in.get("Host") != req.headers_in.get("Referer"):
            return apache.HTTP_FORBIDDEN
    return apache.OK

В вашей конфигурации Apache:

 <Directory /var/www/>
   ...
   AddHandler mod_python .jpg
   AddHandler mod_python .gif
   PythonHeaderParserHandler /var/www/hotlink.py
   #PythonDebug On
 </Directory>

Теперь все запросы для .jpg и .gif будут сначала проверяться с помощью hotlink.py. С помощью mod_python вы также можете проверить атрибут req.server.server_hostname , чтобы проверить ServerName вместо входящего заголовка Host.

2
ответ дан 3 December 2019 в 04:00

Теги

Похожие вопросы