Рейтинг:0

Блокировка HTTP-методов не работает на поддомене

флаг bf
Tom

Я выполнил блокировку методов, отличных от GET, POST и OPTIONS в apache.conf, и когда я пытаюсь запустить сервер по IP, блокировка срабатывает.

Но при настройке той же блокировки на поддомен (через сайты-доступные) этой блокировки не происходит. Что я мог сделать не так?

apache2.conf

<Directory /var/www/>
    Options None
    AllowOverride None
    Require all granted

    <LimitExcept GET POST OPTIONS>
        Require all denied
    </LimitExcept>
</Directory>

сайты доступны/subdomain.example.com.conf

<VirtualHost *:80>
    ServerName subdomain.example.com
    ServerAlias subdomain.example.com
    DocumentRoot /var/www/html/subdomain.example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Header append X-FRAME-OPTIONS "SAMEORIGIN"

    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on

    SSLCertificateFile      /certs/example.crt
    SSLCertificateKeyFile   /certs/example.key
    SSLCertificateChainFile /certs/example-intermediary.crt

    Protocols h2 http/1.1

    Header always set Strict-Transport-Security "max-age=31536000"

    Header append X-FRAME-OPTIONS "SAMEORIGIN"

    <Directory /var/www/html/subdomain.example.com>
        Options None
        AllowOverride None
        Require all granted

        <LimitExcept GET POST OPTIONS>
            Require all denied
        </LimitExcept>
    </Directory>

    ServerName subdomain.example.com
    ServerAlias subdomain.example.com
    DocumentRoot /var/www/html/subdomain.example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Эта блокировка не работает, потому что при выполнении запроса с PUT, DELETE, LOCK и т. д. содержимое страницы возвращается нормально.

Gerard H. Pille avatar
флаг in
Возможно, «AllowOverride None» в /var/www?
Tom avatar
флаг bf
Tom
@GerardH.Pille Я установил этот параметр из-за рекомендации СНГ (4.4). > «Убедитесь, что OverRide отключен для всех каталогов» — «Выполните поиск в файлах конфигурации Apache (httpd.conf и любых включенных файлах конфигурации), чтобы найти директивы AllowOverride. Установите для всех директив AllowOverride значение None. "
Gerard H. Pille avatar
флаг in
Я лаю не по тому дереву, allowoverride управляет только директивами .htaccess. Содержимое страницы не поступает из какого-либо кеша?
Tom avatar
флаг bf
Tom
Кэша нет. В собственном журнале Apache он показывает запрос, сделанный другими методами.
Gerard H. Pille avatar
флаг in
Нет символических ссылок в /var/www ? Используйте отдельные журналы для этого виртуального хоста. Попробуйте «требовать действительного пользователя», чтобы увидеть, достигли ли вы предела.
Рейтинг:2
флаг ru

Вы должны прекратить использовать этот сложный старый способ ограничения методов.

Загрузите mod_allowmehtods.so и определите, что вы хотите разрешить более простым способом.

Модули LoadModule allowmethods_module modules/mod_allowmethods.so
    
<Каталог /var/www> 
#другие директивы
AllowMethods ПОЛУЧИТЬ ВАРИАНТЫ POST 
</Каталог>

Если вы не переопределите это в подкаталоге чем-то другим, это будет работать на уровне сервера. Попробуйте и дайте нам знать.

Gerard H. Pille avatar
флаг in
Странно, что в документации (http://httpd.apache.org/docs/current/mod/core.html) не упоминается амортизация.
ezra-s avatar
флаг ru
@GerardH.Pille Правда, я, конечно, забежал вперед, безусловно, стоит обсудить в ASF, mod_allowmethods намного проще и помогает отказаться от использования Limit LimitExcept, что может вызвать путаницу. Позвольте мне исправить мой комментарий, спасибо за указание на это!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.