Puncte:0

Blocarea metodelor HTTP nu funcționează pe subdomeniu

drapel bf
Tom

Am efectuat blocarea altor metode decât GET, POST și OPTIONS în apache.conf, iar când încerc să rulez serverul prin IP blocarea funcționează.

Dar atunci când configurați aceeași blocare pe un subdomeniu (prin site-uri disponibile), această blocare nu are loc. Ce aș fi putut greși?

apache2.conf

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

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

site-uri-available/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>

Această blocare nu funcționează deoarece la executarea unei cereri cu PUT, DELETE, LOCK, etc, conținutul paginii este returnat normal.

Gerard H. Pille avatar
drapel in
„AllowOverride None” de pe /var/www poate?
Tom avatar
drapel bf
Tom
@GerardH.Pille Am pus aceasta setare, din cauza recomandarii CIS (4.4). >"Asigurați-vă că OverRide este dezactivat pentru toate directoarele" - "Căutați fișierele de configurare Apache (httpd.conf și orice fișiere de configurare incluse) pentru a găsi directivele AllowOverride. Setați valoarea pentru toate directivele AllowOverride la None. "
Gerard H. Pille avatar
drapel in
Latru arborele greșit, allowoverride gestionează numai directivele .htaccess. Conținutul paginii nu provine din nicio memorie cache?
Tom avatar
drapel bf
Tom
Nu există cache. În propriul jurnal Apache arată cererea făcută cu celelalte metode.
Gerard H. Pille avatar
drapel in
Nu există linkuri simbolice sub /var/www? Utilizați jurnalele separate pentru această gazdă virtuală. Încercați „require valid-user” pentru a vedea dacă atingeți limitaexcept.
Puncte:2
drapel ru

Ar trebui să încetați să utilizați acest mod vechi complicat de a restricționa metodele.

Încărcați mod_allowmehtods.so și definiți ceea ce doriți să permiteți într-un mod mai simplu.

LoadModule allowmethods_module modules/mod_allowmethods.so
    
<Director /var/www> 
#alte directive
AllowMethods OBȚINE OPȚIUNI DE POST 
</Director>

Dacă nu înlocuiți acest lucru într-un subdirector cu altceva, acesta va funcționa la nivel de server. Încercați și spuneți-ne.

Gerard H. Pille avatar
drapel in
Ciudat că documentația (http://httpd.apache.org/docs/current/mod/core.html) nu menționează deprecierea.
ezra-s avatar
drapel ru
@GerardH.Pille Adevărat, cu siguranță am mers înaintea mea, cu siguranță merită o dezbatere în ASF, mod_allowmethods este mult mai simplu și ajută la oprirea utilizării Limit LimitExcept, ceea ce poate provoca confuzie. Permiteți-mi să-mi corectez comentariul, mulțumesc că l-ați subliniat!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.