Ich bin auf eine httpd.conf
Richtlinie gestoßen , die ich nicht verstehen kann:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
Laut dem Dokument würde ich sagen, dass Satisfy
dies keine Auswirkungen hat, da es keine gibt Allow
. Liege ich falsch? Was macht diese Richtlinie Ihrer Meinung nach?
apache-2.2
deny
conf
user41565
quelle
quelle
Antworten:
Ich würde Ihnen zustimmen, die Befriedigung, dass alles nichts tut - ohne sie würden diese Dateien immer noch abgelehnt.
quelle
Allow from
oderRequire
Bedingungen gibt,Satisfy
spielt dies hier keine Rolle (Sie können eine Bedingung, die nicht existiert, nicht erfüllen, daher wird der Zugriff verweigert).TLDR;
In den meisten Fällen ist diese Linie nicht unbedingt erforderlich, da
Satisfy All
ist in der Regel die Einstellung Standardserver. In diesem Fall ist die Leitung nicht unbedingt erforderlich.Die Zeile wird als zusätzliche Sicherheit hinzugefügt. "Nur für den Fall" Der Server wurde so konfiguriert, dass
Satisfy Any
die Standardeinstellung verwendet wird.Wenn der Server absichtlich mit dieser
Satisfy Any
Einstellung festgelegt wurde, möchten Sie diese Einstellung auf jeden Fall überschreiben, indem Sie dieSatisfy All
Anweisung zum Sichern von Dateien wie z.htaccess
.Ich bin nicht sicher, ob die htaccess-Datei die Standardanweisung "Satisfy" des Servers für alle Ordner in oder unter einer der genannten htaccess-Dateien überschreiben würde.
Für generischen Code, der im Internet veröffentlicht wird, insbesondere wenn Sie erfahren, wie
.htaccess
Dateien ordnungsgemäß gesichert werden, ist das Poster dafür verantwortlich, dass keine Annahmen über Ihre Servereinstellungen getroffen werden, die die Sicherheit des Dokuments beeinträchtigen könnten. Durch das Einfügen dieser "zusätzlichen" Zeile wird sichergestellt, dass die sicherere Einstellung auf Ihre htacess-Dateien angewendet wird. Durch Hinzufügen der Direktive funktioniert der Codeblock 100% der Zeit, anstatt es dem Zufall zu überlassen, dass htaccess-Dateien für die kleine Gruppe von Servern verfügbar gemacht werden, die unterschiedlich konfiguriert sind.Gemäß der Apache-Dokumentation :
Da der Standardwert normalerweise ist
Satisfy All
(die einzige andere Option istSatisfy Any
), bemerken Sie möglicherweise keinen Unterschied, wenn Sie diese Anweisung einfügen. Ihre Serverkonfigurationsdatei (oder? Möglicherweise eine .htaccess-Datei in einem übergeordneten Verzeichnis? - Ich bin nicht sicher, ob dies möglich ist oder nicht) überschreibt jedoch möglicherweise den Serverstandard. In beidenSatisfy All
Fällen stellt das konsistente Hinzufügen der Richtlinie sicher, dass die richtige Sicherheitsmaßnahme angewendet wird.Durch das
Satisfy All
Einfügen der Direktive stellen Sie die höhere Sicherheitseinstellung für diese Dateien sicher, unabhängig von der Einstellung in Ihrer Serverkonfiguration.Das mit dem Dokument verknüpfte Dokument erwähnt einige Anwendungsfälle, bei denen Sie möglicherweise stattdessen verwenden möchten
Satisfy Any
.quelle
Da ich keinen Kommentar abgeben kann, füge ich hier hinzu, dass die Antwort von @ SherylHohman die beste Antwort ist, da sie für zusätzliche Sicherheit wichtig ist . Es ist also technisch nicht richtig zu sagen, dass es ohne es keine Wirkung hat (im Gegensatz zur akzeptierten Antwort), da Sie immer noch den Rest der Serverkonfiguration berücksichtigen müssen. Ich möchte jedoch die Antwort von @ SherylHohman ergänzen:
Die Serverkonfigurationsdatei (z. B.
/etc/httpd/conf/httpd.conf
) könnte eine allgemeinereSatisfy Any
Anweisung enthalten. Dies ist beispielsweise wichtig, da möglicherweise jemand einen Benutzernamen / ein Kennwort benötigt, um auf alle Sites auf seinem Server zuzugreifen (z. B. überRequire group [name
) und dann eine Umgehung von einer bestimmten IP-Adresse oder einer Reihe von IP-Adressen über zulässt.Allow from [ip]
Wenn dies also weggelassen wurde,.htaccess
würde geöffnet werden, weil einSatisfy Any
deklariert werden müsste.Die Verzeichnisse in oder über einer bestimmten
.htaccess
Datei haben keine Auswirkungen, es sei denn, sie enthalten einen<Files>
Abschnitt, der ebenfalls speziell übereinstimmt.htaccess
und diese Regel überschreibt, zusammen mit der Serverkonfiguration, die auch die erforderlichenAllowOverride
Anweisungen enthält (z . B.Limit
oderAll
). Ich sage, dass es sein muss,<File>
weil dies in der Serverkonfiguration verwendet wird und diese nach dem<Directory>
Level (dh dem Root-Level.htaccess
) verarbeitet werden. Dies liegt daran, dass<File>
Abschnitte später zusammengeführt werden und es scheint, dass sie.htaccess
natürlich nach der Serverkonfiguration verarbeitet werden.quelle