Wie sichtbar ist mein / var / www für die Außenwelt?

8

Ich nehme an, das ist eher eine Haushaltsfrage, aber hier geht es weiter.

Wenn ich eine Sicherungsdatei meines index.htmlangerufenen Benutzers erstelle index.html.bak, ist es dann möglich, dass jemand von außen, der httpauf meinem Apache2-Server verwendet, den Inhalt meines /var/wwwVerzeichnisses auflisten kann ? Ich kenne derzeit keine Methode, um dies zu tun, aber dies könnte an meiner mangelnden Erfahrung in diesem Bereich liegen. Soll ich Dateien speichern, die nicht woanders angezeigt werden müssen?

Derzeit kann ich mir nur vorstellen, dass jemand die Datei entdeckt, wenn irgendwo ein expliziter Link auf die Datei verweist. Wie sichtbar ist mein Webverzeichnis?

Chad Harrison
quelle

Antworten:

11

Um Ihre Fragen direkt zu beantworten - Sie können solche Dateien entweder an einem anderen Ort aufbewahren oder Apache so konfigurieren, dass der Zugriff auf sie verweigert wird -, ist es relativ einfach, den Zugriff auf * .bak zu verweigern.

Apache generiert und zeigt eine Verzeichnisliste für jedes Verzeichnis an, das keine Indexdatei enthält - definiert durch die DirectoryIndex-Direktive, aber normalerweise index.html, index.htm, sofern dies nicht konfiguriert ist (wie oben von MH erwähnt). index.php und ähnliches.

Allgemeiner gesagt:

Möglicherweise möchten Sie ein Revisionskontrollsystem wie SVN oder git (oder sogar RCS) verwenden, um alte Versionen UND einen Änderungsverlauf Ihrer Webseiten beizubehalten (einschließlich der Möglichkeit zu sehen, was sich geändert hat und wann und, was noch wichtiger ist, der Möglichkeit dazu zu einer früheren Version zurückkehren)

Sowohl git als auch svn benötigen ein Repository, das woanders eingerichtet ist. RCS ist ziemlich primitiv und grundlegend, erfordert jedoch keine Einrichtung. Der Revisionsverlauf wird entweder im selben Verzeichnis oder in einem ./RCS-Unterverzeichnis gespeichert, sofern eines vorhanden ist. Ein kleines Ärgernis bei RCS ist, dass beim Einchecken einer Datei die Berechtigungen in schreibgeschützt geändert werden. Sie müssen sie daher erneut auschecken, bevor Sie sie erneut bearbeiten können (oder ci -lzum Einchecken einer Datei und sofortigen Einchecken verwenden) es raus).

IMO git ist wahrscheinlich übertrieben für diesen Job, SVN ist in Bezug auf Komplexität und Fähigkeit zur Verwaltung des Revisionsverlaufs einer Reihe von handbearbeiteten HTML-Seiten nahezu ideal, und RCS ist archaisch, aber dennoch nützlich. Mit RCS können Sie Dateien nur direkt in / var / www bearbeiten, was bedeutet, dass die Änderungen "live" sind, sobald Sie die Datei speichern. Mit svn oder git können Sie eine lokale Kopie auschecken, z. B. in Ihrem Home-Verzeichnis auf Ihrem Desktop-Computer, die Dateien bearbeiten, die Änderungen einchecken und dann die Updates in / var / www auf dem Server auschecken, wenn dies der Fall ist fertig. Sie können die Änderungen auch zuerst zum Testen auf einem Staging-Server auschecken, bevor Sie sie auf dem Produktionsserver auschecken.

Sie können dann den Zugriff auf die Unterverzeichnisse .svn /, .git /, RCS / etc mit Apache verweigern - siehe z. B. /programming/398008/deny-access-to-svn-folders-on-apache

Natürlich erfordert die effektive Verwendung der Revisionskontrolle ein wenig Disziplin. Sie müssen sich angewöhnen, Ihre Änderungen immer dann einzuchecken, wenn Sie sie vornehmen - die Mühe lohnt sich.

cas
quelle
15

Wenn Sie Options -Indexesfür das Directorybetreffende Objekt angeben , generiert Apache keine Verzeichnisliste. Wenn jedoch jemand den Dateinamen errät, kann er trotzdem darauf zugreifen, wenn das Betriebssystem dem Webserver den Zugriff auf die Datei ermöglicht.

Michael Hampton
quelle
5
Jep. Wenn Sie etwas haben, das Sie nicht im Internet bereitstellen möchten, behalten Sie es nicht bei /var/www.
Jscott
Dies ist die beste Antwort für die tl;drLeute mit der Antwort von Craig, obwohl Craig's gründlicher ist.
Tacotuesday
@nonak Up Abstimmung beide :)
jscott
Erraten Sie beim Thema Raten, wie lange es dauern würde, index.html.bak oder index.bak.html usw. zu finden. Alles, was offensichtlich ist, hat keine wirkliche Chance.
John Gardeniers
1
Computer raten heutzutage. Verlassen Sie sich also nicht auf Dunkelheit, um etwas Wichtiges zu schützen. Übrigens habe ich die andere Antwort positiv bewertet. :)
Michael Hampton
2

Wenn Sie die Verzeichnisliste aktiviert haben, ist diese Datei sicherlich sichtbar. Selbst wenn die Verzeichnisliste nicht aktiviert ist, wird nicht empfohlen, eine Datei zu speichern, die nicht in / var / www angezeigt werden soll, da sie für öffentliche Dokumente erstellt wurde.

rgbc
quelle
0

Ich sehe keinen Grund darin, die Sicherungsdatei beizubehalten /var/www.

Backups werden erstellt, um Probleme schnell zu beheben, wenn Sie sie vermasseln. Ich würde vorschlagen, dass Sie ein neues Sicherungsverzeichnis in einem Kernlaufwerk erstellen ( für die Außenwelt nicht zugänglich ) und Ihre Sicherungen dort speichern.

Shivek Khurana
quelle