Frage 404-Code für nicht autorisierte Versuche zurückgeben


Ich habe ein Admin-Verzeichnis auf meinem Webserver (http://test.com/admin) und möchte nicht, dass nicht autorisierte Personen auf dieses / admin / -Verzeichnis zugreifen. Stattdessen möchte ich 404-Fehlercode für alle nicht autorisierten Zugriffe zurückgeben.

Meine Frage ist, gibt es eine Möglichkeit, 404 Fehlercode für alle Zugriffsversuche mit Ausnahme einiger spezifischer IP-Adressen zurückzugeben?

Mein Webserver ist Apache unter Linux (plesk).


5
2018-05-27 16:02


Ursprung


Vermutlich entscheiden Sie sich dafür, die Ressource absichtlich zu verstecken, anstatt eine 403 zurückzugeben?
+1 für ironischen Benutzernamen. - TheTXI


Antworten:


Naja, in der Nähe:

<Location /admin>
     Order deny,allow
     Allow from 10.0.0.1
     Allow from 192.168.1.1
     Deny from all
</Location>

Obwohl das, was das tatsächlich tut, eine 403 Verbotene, keine 404 Nicht gefunden zurückgibt, was, weißt du, richtig ist.

Wenn Sie dies im Admin-Verzeichnis in eine .htaccess-Datei einfügen, benötigen Sie den Speicherort-Container nicht. Das Beispiel wurde für eine Server- oder virtuelle Host-Konfigurationsdatei geschrieben.

Siehe auch mod_access-Dokumente.

Für das, was es wert ist, habe ich im Laufe der Zeit immer mehr Wert darauf gelegt, den Site-Administrator auf einen völlig separaten virtuellen Host zu stellen.


5





Sie können mod_rewrite dazu verwenden.

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=10.0.0.1 [OR]
RewriteCond %{REMOTE_ADDR} !=10.0.0.1
RewriteRule ^admin($|/) - [L,R=404]

Notiere dass der R=404 Flag erfordert mindestens Apache 2.1.1.


15



Das ist brilliant für richtig versteckt .htaccessusw., nicht zu erwähnen WEB-INF wenn Sie nach einem Servlet-Container suchen und alles im selben Quellverzeichnis behalten. Prost! - T.J. Crowder


Überprüfen Sie das Attribut "Zulassen von" im Konfigurationshandbuch


0





Unter litespeed die folgende kleine Variante mit mod_rewrite hat für mich gearbeitet:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1.2.3.4 [OR]
RewriteCond %{REMOTE_ADDR} !^1.2.3.4
RewriteRule (.*) - [R=404,L]

0