Wie sollte ich mein Webformular in einer Produktionsumgebung bereitstellen?

516
CVE-2017-5754

Ich bin mir zunächst nicht sicher, ob dies der richtige Ort für diese Frage ist. Da es sich jedoch um Serverfehler handelt, dachte ich, ich sollte es hier versuchen.

Ich fange mit dem aktuellen Entwicklungs-Setup an: Ich habe einen lokalen Apache-Webserver, der mit XAMPP verwaltet wird, und keine SSL / Certification-Einstellungen, die auf meinem PC ausgeführt werden. Ich habe eine kleine MySQL-Datenbank im Hintergrund.

Die Website soll ein einfaches Formular für die Mitarbeiter bereitstellen, in das sie ihre Schichtdetails (Startzeit, Endzeit, Anzahl der bearbeiteten Boxen usw.) eingeben können. Diese Details werden dann gesendet und in der MySQL-Datenbank gespeichert.

Ich glaube, dass das Umfeld ein relativ geringes Risiko darstellt. Ich glaube nicht, dass irgendjemand, der mit der Site arbeitet, versuchen wird, die Sicherheit auf irgendeine ernsthafte Weise zu manipulieren, daher sollte die durch das europäische Recht (GDPR) geforderte grundlegende Sicherheit ausreichen. Ich weiß, dass mein gegenwärtiger Aufbau nicht für die Produktion gedacht ist, aber ich bin auch extrem neu für ein solches Projekt, und deshalb möchte ich einige Ideen von Ihnen bekommen, wie Sie die Dinge einrichten.

Meine Fragen sind aber nicht beschränkt auf:

  • Sollte der Server und die Datenbank lokal (zu Hause) oder in der Cloud (mit Azure oder ähnlichem) ausgeführt werden?
  • Wenn es lokal läuft, wie können sich die Mitarbeiter des Unternehmens mit dem lokalen Server verbinden (möglicherweise über ein VPN?)?
  • Wie kann ich die Verfügbarkeit garantieren, wenn ich sie lokal ausführe?
  • Welche Alternativen gibt es für XAMPP (also für die Produktion und nicht für die Entwicklung)?
  • Was muss ich noch beachten?

Vielen Dank im Voraus!!

1
Dies ist auch hier ein Thema, da es einfach zu breit ist. Fragen hier sollten sich auf spezifische Probleme beziehen. confetti vor 6 Jahren 0
Gibt es einen Ort, an dem ich diese Frage stellen kann? CVE-2017-5754 vor 6 Jahren 0
Möglicherweise haben Sie eine Reihe unterschiedlicher Fragen, die möglicherweise in verschiedenen Bereichen gestellt werden müssen. Server @ home? Am besten, wenn es lokal im Unternehmen ausgeführt wird, um Zugriffsprobleme zu vermeiden. Andernfalls kann die Cloud rund um die Uhr ausgeführt werden. Sie sollten wahrscheinlich ein PHP-Framework verwenden, um einige Probleme für Sie zu lösen. Die Struktur und Codierung ist ** stackoverflow **, die Sicherheit ist ** Informationssicherheit **. Es gibt auch ** Datenbankadministratoren ** für MySQL- / Datenbankfragen. cybernard vor 6 Jahren 0
** Wie kann ich die Verfügbarkeit garantieren, wenn ich es lokal ausführe? ** Definieren Sie, wie streng Ihre Verfügbarkeit sein muss. In den meisten Fällen ist eine anständige USV mit Kabelmodem, Computer und Netzwerk-Switch angeschlossen, wenn Sie einen separaten Router / Switch haben. Vollständiger Stromausfall, Generator installieren. Möglicherweise benötigen Sie 2 oder mehr ISP, um sicherzustellen, dass Ihr Internet aktiv bleibt. Wie wäre es mit Erdbeben, Flut, Feuer oder anderem Schutz, wird es immer komplizierter und teurer. Aus diesem Grund ist Cloud Computing sinnvoller. Sie haben die für Sie erledigt. cybernard vor 6 Jahren 0
Vielen Dank für Ihre ausführlichen Antworten. Das Problem ist, dass mehrere geographische Standorte abgedeckt werden müssen. Deshalb möchte ich es zu Hause laufen lassen. Es ist nicht wirklich eine professionelle Sache, ich mache das nur für meinen Vater als Hobbyprojekt. Ich werde versuchen, meine Frage aufzuteilen und nach den richtigen Gemeinschaften zu suchen CVE-2017-5754 vor 6 Jahren 0

2 Antworten auf die Frage

0
harrymc

Sollte der Server und die Datenbank lokal (zu Hause) oder in der Cloud (mit Azure oder ähnlichem) ausgeführt werden?

Beides ist mit seinen Vor- und Nachteilen möglich. Die wichtigste Überlegung ist die Verfügbarkeit.

Wenn es lokal läuft, wie können sich die Mitarbeiter des Unternehmens mit dem lokalen Server verbinden (möglicherweise über ein VPN?)?

Sie müssen einen Port Ihres Routers (besser nicht 80) an Port 80 des Servers weiterleiten. Sie benötigen auch einen DNS-Namen für Ihr Unternehmen. Wenn Sie nicht über einen der fünf besten dynamischen DNS-Anbieter verfügen, können Sie heute kostenlos nachschlagen . Die Mitarbeiter werden via https://yourDNS:yourPort. Sie brauchen kein VPN.

Wie kann ich die Verfügbarkeit garantieren, wenn ich sie lokal ausführe?

Du kannst nicht Es gibt auch keine Garantie, wenn Sie in der Cloud laufen, obwohl die Prozentsätze besser sind.

Welche Alternativen gibt es für XAMPP (also für die Produktion und nicht für die Entwicklung)?

Es gibt andere Webserver unter Linux und Windows. Unter Windows wird meistens IIS verwendet. Suche nach ihnen.

Was muss ich noch beachten?

Viel. Achten Sie besonders auf die Sicherheit und auf die Vermeidung von Sicherheitslücken bei der SQL-Injection .

Vielen Dank für die Antwort. Ist es sinnvoll, den Server nicht für das Internet zu öffnen und ihn in einem lokalen Netzwerk zu halten, damit sich die Mitarbeiter über ein vpn mit ihm verbinden können? Ich habe mich gefragt, ob es die Sicherheit verbessert, da im Internet niemand auf diese Weise mit dem Server interagieren kann. CVE-2017-5754 vor 6 Jahren 0
Aus Sicherheitsgründen ist es sehr sinnvoll. Warum brauchen Sie ein VPN in Ihrem lokalen Netzwerk? harrymc vor 6 Jahren 0
Der Server ist in meinem lokalen Netzwerk zu Hause, aber die Mitarbeiter müssen sich irgendwie mit diesem Netzwerk verbinden, um das Formular verwenden zu können und dies ohne Internet zu tun. Ich dachte, Sie benötigen eine VPN-Verbindung zum Netzwerk. Sie befinden sich nicht am selben Ort wie der Server. CVE-2017-5754 vor 6 Jahren 0
VPN ist nicht wirklich notwendig - HTTPS reicht aus. harrymc vor 6 Jahren 0
Sogar HTTP ist in einem internen Netzwerk in Ordnung. harrymc vor 6 Jahren 0
Aber um von der Firma auf den Server zuzugreifen, brauche ich ein VPN oder? Da der Server nicht für das Internet geöffnet ist und der Mitarbeiter nur darauf zugreifen kann, wenn er sich im selben Netzwerk befindet. CVE-2017-5754 vor 6 Jahren 0
Zweitens ist HTTPS heute obligatorisch, oder Browser können sich weigern, eine Verbindung herzustellen. Auf jeden Fall brauchen Sie kein VPN, es sei denn, die Daten sind so streng geheim, dass HTTPS nicht ausreicht (HTTPS reicht aus, um mich beispielsweise mit meiner Bank zu verbinden). Kann es zu einer Verwechslung mit [Port Forwarding] (https://en.wikipedia.org/wiki/Port_forwarding) kommen? harrymc vor 6 Jahren 0
Ich weiß, wie die Portweiterleitung funktioniert, aber ich habe vielleicht die Verwendung eines VPNs missverstanden. Um die Dinge hoffentlich aufzuklären, weiß ich, dass ein VPN zum sicheren Übertragen von Daten verwendet werden kann. In meinem Fall, in dem der Server nur über mein lokales Netzwerk und nicht über das Internet erreichbar ist, kann der Mitarbeiter nicht einfach von einem anderen Ort in Deutschland auf die Webseite zugreifen. Jetzt dachte ich, dass Sie eine VPN-Verbindung zu meinem Heimrouter benötigen, damit sich die Mitarbeiter dem lokalen Netzwerk anschließen und von dort aus darauf zugreifen können. CVE-2017-5754 vor 6 Jahren 0
HTTPS ist auch eine begrenzte Form von VPN. Der Unterschied ist, dass HTTPS nur den Verkehr zwischen Ihrem Browser und einer bestimmten Website verschlüsselt, während VPN * den gesamten Datenverkehr zwischen Ihrem Computer und dem Internet verschlüsselt. Da die Mitarbeiter * nicht alle Kommunikationen * benötigen, die über Ihren Server laufen, ist VPN zu vermeiden, da Ihr Server nicht als Gateway für das Internet für das gesamte Unternehmen geeignet ist. harrymc vor 6 Jahren 0
0
GeraldDC

In Bezug auf die Infrastruktur würde ich raten, keine Infrastruktur wie eine LAMP - lokal oder in der Cloud - für eine solche Aufgabe zu betreiben und zu warten, sondern eher einen Sandkasten-Ansatz zu wählen.

Am Anfang ist die Lernkurve etwas, aber wir haben Google App Engine bereits erfolgreich mit PHP verwendet (siehe https://cloud.google.com/appengine/docs/php/ ). Für kleinere Tools, wie die von Ihnen, scheint es

Für Anwendungen mit wenig Verkehr (und Ihre scheint eine zu sein) ist es grundsätzlich kostenlos und Sie können problemlos eine MySQL-Datenbank mit Google Cloud SQL hinzufügen.

Enthält auch viele infrastrukturbezogene Sicherheitsaspekte aus Ihrer Tabelle, jedoch muss auf anwendungsbezogene Sicherheit wie SQL-Injektionen noch geachtet werden