7 Stimmen

Gibt es Nachteile bei der Verwendung einer Arbeitskopie für Ihre Live-Website mit SVN 1.7?

Ich plane, unsere Live-Site heute zu veröffentlichen, und ich habe gelesen, dass die beste Option ist, svn export zu verwenden, um das Arbeitsverzeichnis nicht mit .svn-Dateien zu füllen. Dies ist jedoch kein Problem mehr bei SVN 1.7, da die Metadaten in einer einzelnen Datei gespeichert werden. Mir scheint, dass die Verwendung eines Arbeitsverzeichnisses viel besser ist als der Export, da das Aktualisieren der Live-Site so einfach wäre wie das Ausführen von 'svn update'. Gibt es einen Grund, kein Arbeitsverzeichnis auszuchecken und Export zu verwenden?

2voto

xorsyst Punkte 6991

Das Problem bei der Verwendung von svn update ist, dass es zu einfach ist, Ihre Live-Site zu aktualisieren. Sie könnten auf eine Version aktualisieren, die nicht funktioniert oder nicht getestet ist.

Ich würde stattdessen einen hybriden Ansatz empfehlen - bevor Sie eine neue Version veröffentlichen, taggen Sie sie und wechseln Sie dann die Live-Site zu diesem Tag.

Natürlich müssen Sie immer noch sicherstellen, dass Sie nicht das .svn-Stammverzeichnis bereitstellen.

1voto

altern Punkte 5598

Die Situation, die Sie beschreiben, ist eine ernsthafte Sicherheitsbedrohung.

Wie Sie vielleicht bereits wissen, speichert Subversion seine Metadateien direkt im Arbeitsverzeichnis in den .svn Ordnern. Jeder dieser Ordner hat Dateieinträge mit der Liste aller Verzeichnisse auf derselben Ebene wie der entsprechende .svn Ordner. In den .svn Ordnern finden Sie auch Informationen zum Speicherort des Repositories, Dateigrößen, Änderungsdaten und Benutzer-Logins. Wenn Sie Ihre Website einfach bereitstellen, indem Sie das Arbeitsverzeichnis in das htdocs Verzeichnis auf dem Webserver auschecken und die URL site.com/.svn/entries verwenden, sehen Sie nicht nur die Projekt-Dateistruktur, sondern auch eine Liste von Autoren, letzten Änderungen, Link zum Repository, etc.

Sie finden auch ein text-base Verzeichnis in jedem .svn Ordner. Es enthält die neuesten Revisionen aller Dateien, die unter Versionskontrolle stehen. Dateien im text-base Verzeichnis haben die Erweiterung .svn-base, dies ermöglicht es, den Inhalt direkt an den Browserausgang zu senden, ohne ihn auf der Serverseite zu interpretieren. Genauer gesagt, es ermöglicht es, den Rohquellcode zu sehen!

Trotzdem gibt es einfache Lösungen für dieses Problem.

Apache:

    Order allow,deny
    Deny from all
    Satisfy All

Nginx:

location ~ /.svn/ {
    deny all;
}

Zusammenfassend ist der Hauptnachteil dieses Ansatzes, dass Sie über die Bedrohung Bescheid wissen und nicht vergessen sollten, die Möglichkeit des Zugriffs auf .svn Verzeichnisse über das Web zu verhindern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X