Wie halten Unternehmen Websites während der Entwicklung versteckt?

9

Ich bin neu in diesem Bereich und auch ein neuer 19-jähriger PHP-Entwickler, der gerade eingestellt wurde. Ich bin mir nicht sicher, wie das funktioniert. Viele Unternehmen verhindern bei der Entwicklung ihrer Websites, dass ihre Websites nicht indiziert werden. Was sind einige Möglichkeiten, wie HTML5 / CSS und dann PHP / MySQL-Arbeit vor Suchmaschinen verborgen werden? Wenn ich mich nicht irre, sind dies die Techniken:

  1. Offline-Entwicklung: Verwenden des lokalen Speichers zum Rendern von HTML / CSS; Ich bin mir nicht sicher, wie PHP / MySQL damit funktionieren würde.

  2. Verwenden von .htaccess, um den Zugriff zu verhindern

  3. Verwenden von VPN, um den Zugriff zu verhindern.

Ariel
quelle
1
Die beste Lösung ist, wenn möglich, immer einen Testserver zu haben, der vollständig mit dem Produktionsserver identisch ist. Und selbst in diesem Fall kann es unerwartete Überraschungen geben ...
Avio
Wenn Sie eine vollständige lokale PHP-Entwicklung durchführen möchten, schauen Sie sich easyphp.org an. Es ist ein einfaches Installationsprogramm, mit dem Apache Web Server, MySQL db und PHP auf Ihrem Windows-Desktop installiert und konfiguriert werden.
Alan Barber

Antworten:

20

Die beste Vorgehensweise besteht darin, eine Annäherung an den Produktionsstapel auf Ihrem lokalen Entwicklercomputer vorzunehmen. Dies umfasst normalerweise die Datenbank, den Webserver und Ihren benutzerdefinierten Code. Mach deine ganze Entwicklung dort. Bearbeiten Sie niemals Code auf einem Produktionsserver.

Wenn Ihre Geschäftsinteressenten bereit sind, die Funktionen live zu schalten, übertragen Sie Ihren Code von Ihrem lokalen Computer auf den Produktionsserver. Sie können einen Testserver verwenden, damit interne Stakeholder eine Vorschau Ihrer Änderungen anzeigen können, bevor Sie live gehen.

Sie sollten sicher sein, ein Versionskontrollsystem zu verwenden, um Ihren Code zu verwalten. Git und Mercurial sind solide Optionen.

greg
quelle
Hey Greg, gibt es einen Link, auf den du mich verweisen kannst, der mir zeigt, wie man diese Dinge macht? Alle Codierungen, die ich kenne, stammen aus dem Erlernen selbst. Deshalb arbeite ich zum ersten Mal in einem Unternehmen, obwohl sie sagten, dass dies eine Lernumgebung für mich sein wird, und sie sind damit einverstanden, aber ich möchte mit so viel Wissen wie möglich arbeiten. Würde es wirklich schätzen.
Ariel
Dieses Muster wird als "privater Arbeitsbereich" bezeichnet. Die Website informit.com/articles/article.aspx?p=30350 scheint einen vernünftigen Überblick zu haben.
Greg
Auch werden Sie wahrscheinlich nie ein genaues Rezept für Ihre Situation finden. Sie sollten in der Lage sein, jedes der Subsysteme in Ihrer Produktionsumgebung zu identifizieren und Installationshilfe zu finden, um sie auf Ihrer lokalen Workstation abzurufen.
Greg
Und wenn Sie schon dabei sind, steuern Sie auch Ihre Datenbank!
HLGEM
In einem meiner vorherigen Jobs hat unser automatisierter Erstellungsprozess den gesamten Verlauf von Datenmigrationen auf einen Golddatensatz (eine Teilmenge von Produktionsdaten) angewendet, indem eine Folge von SQL-Dateien nacheinander angewendet wurde.
Greg
6

Das bloße Bitten von Suchspinnen, Ihre Website nicht zu indizieren, ist eine sehr schwache Verteidigung, wenn überhaupt.

Der übliche Weg, dies zu tun, ist wie folgt:

  • Während der Entwicklung führen Sie den Code auf einem Entwicklungscomputer aus, auf den von außerhalb Ihres LAN nicht zugegriffen werden kann, oder möglicherweise nicht einmal von einem anderen Computer (localhost). Dies geschieht normalerweise mit einer Firewall, entweder auf Netzwerkebene (eine tatsächliche LAN-Firewall; wenn Ihr Unternehmen überhaupt etwas wert ist, haben Sie eine) oder lokal (eine "persönliche" Firewall). Darüber hinaus können Sie Ihren lokalen Apache-Server so konfigurieren, dass nur Verbindungen von localhost (127.0.0.1) akzeptiert werden.
  • Die Akzeptanzversion (dh eine Sandbox-Version, die der Kunde ausprobieren und testen kann) wird auf einer Maschine ausgeführt, die mit der Produktionsumgebung identisch ist (so weit wie möglich - einige Konfigurationsdetails müssen unterschiedlich sein). Sie beschränken den Zugriff ähnlich wie in der Entwicklungsumgebung, gewähren jedoch auch Zugriff auf das Netzwerk des Kunden. Wenn dies nicht möglich ist (z. B. weil der Kunde keine eigene dedizierte IP-Adresse hat oder weil er sich nicht die Mühe macht, herauszufinden, was es ist), können Sie die HTTP-Authentifizierung hinzufügen und dem Kunden ein Kennwort geben. Dies kann auf Webserverebene (dh Apache) mit einer Einschränkung erfolgen: Die HTTP-Authentifizierung erfolgt unverschlüsselt über das Kabel. Wenn die Akzeptanzversion also etwas entfernt Vertrauliches enthält,

Wie Sie diese Dinge nach oben gesetzt würden: Wenn Sie eine anständige * nichts Verteilung laufen, kommt es mit einem Paket - Manager ( apt, port-install, rpm, etc.); Verwenden Sie diese Option, um die benötigten Komponenten zu installieren und die Dokumentation zu lesen. Bitten Sie einen Systemadministrator um Hilfe, wenn Sie es nicht selbst herausfinden können.

tdammers
quelle
4

Für höfliche Crawler (dh alle wichtigen Suchmaschinen) können Sie eine /robots.txtDatei anbieten mit:

User-Agent: *
Nicht zulassen: /

Dies ist natürlich nur eine Empfehlung und verhindert nicht, dass Personen die Website tatsächlich besuchen, wenn sie die URL kennen. Ein besserer Ansatz besteht darin, die Site hinter eine Art Login zu stellen, wenn Sie Zugriff über das Internet benötigen, oder den Server einfach auf einem internen Webserver zu hosten.

Greg Hewgill
quelle
1
Diese und die Antwort von Greg (... dem anderen Greg) fassen alles ziemlich perfekt zusammen.
Anonym
1

Im Sinne von "mit mehr Wissen hineingehen":

HTML / CSS kann mit ausgeblendet robots.txtwerden. Ändern Sie diese Dateien jedoch unbedingt , wenn Sie die Site in die Produktion verschieben. robots.txtverhindert nicht, dass eine zufällige Person die Entwicklungswebsite errät (wenn sie für die ganze Welt sichtbar ist).

.htaccesskann verwendet werden, um jeder entwickelten Site eine Kombination aus Benutzername und Passwort hinzuzufügen .

Hier ist ein Beispiel, wie Sie ein VPN verwenden können:

Alle Anfragen im VPN durchlaufen eine Firewall. Diese Firewall (auf der Software wie pfSense ausgeführt wird ) überprüft Website-Anforderungen und führt eine Umleitung basierend auf der URL durch. Beispielsweise verweist die URL http: //example.com.staging auf die Version von example.com auf Ihrem Staging-Server, und die URL von http: //example.com.development verweist auf die Version von example.com auf Ihrem Entwicklungsserver.

Da sich all dies in einem privaten VPN befindet, ist keine dieser Websites von außen zugänglich.

Um einige Dinge mit Ihrer ursprünglichen Frage zu klären. Die PHP / MySQL-Arbeit wird serverseitig ausgeführt , sodass Webcrawler, Browser usw. den Code nie sehen - sie sehen nur die Ausgabe des Codes (dh, wenn Sie Ihren Server richtig konfiguriert haben und nicht rendern .php-Dateien als Text).

Ich bin sicher, dass ich Ihre Frage falsch verstanden habe, aber ich fand Ihre Verwendung des Ausdrucks "lokaler Speicher" mehrdeutig. LocalStorage kann auch auf eine HTML5-Technologie zum lokalen Speichern von Assets auf dem Computer eines Clients verweisen. Es wird nicht zum Rendern von HTML / CSS verwendet, sondern ist nur ein Datenspeicher (der Browser rendert HTML / CSS). Lokaler Speicher hat normalerweise nichts damit zu tun, wie Unternehmen Websites in der Entwicklung verstecken.

PHP-Dateien können lokal angezeigt werden, wenn Sie einen Webserver auf Ihrem Computer ausführen und sich die Dateien in den entsprechenden Verzeichnissen befinden (normalerweise im htdocsVerzeichnis, wenn Apache ausgeführt wird).

CamelBlues
quelle
0

Suchmaschinen arbeiten mit Spinnen : Skripten, die das Web von einem Link zum anderen crawlen. Wenn Ihre Website neu ist und keine Links zu anderen Websites vorhanden sind, werden Sie von nichts gefunden. Dies und eine robots.txt-Datei, die so konfiguriert ist, dass jede Spinne, die irgendwie über Ihre Site wandert, nicht durchgesehen werden kann, sollte ausreichen.

Mason Wheeler
quelle