Ist es Sicher

Alles, was PHP betrifft, kann hier besprochen werden.

Ist es Sicher

Postby Sebastian1 » 08. June 2005 18:33

Hi

Ich wollt gern mal wissen mit welchen befehlen ich Daten sicher vom Scribt zur Datenbank bringe und wie wird eine Datenbank gesichert?
Außerdem wollt ich wissen ob man das Passwort unbedingt in die htacces (oder so ähnlich) Datei schreiben muss oder ob dies auch in einer Datenbank sicher geht.

Ich dank mal im vorraus
Sebastian1
 
Posts: 10
Joined: 22. February 2005 19:10

Hm mal so einige Überlegungen

Postby TConnect » 08. June 2005 23:14

Hi,

also die Daten sicher zur Datenbank geht nur mit einer verschlüsselten Verbindung. Wie das genau geht, findest Du bei MySQL z.B. auf der entsprechenden Internetseite. Ich denke, da sind dann auch Beispiele zur Realisierung in PHP verfügbar.

Eine DB-Sicherung funktioniert bei MySQL einfach durch das Sichern der Datenbank-Ordner. Der Vorteil bei MySQL ist ja gerade, dass jede Datenbank aus einem physikalischen Ordner besteht, den man einfach mit einem FTP-Programm sichern kann. Die einzelnen Tabellen sind immer Dateitrippel, bestehend aus Definitionsdatei, Inexdatei und Datendatei. Nach einem Absturz reicht es in der Regel sogar aus, die Ordner einfach wieder zurück zu kopieren und schon klappt wieder alles.

Aber Vorsicht! Du mußt auf jeden fall darauf achten, beim Backup Deiner Datenbank gleich auch die richtige Version Deiner PHP Scripte abzulegen. Mir ist das mal passiert, dass ich ein DB-Backup zurückgespielt habe, meine PHP Entwicklungen aber schon viel weiter fortgeschritten waren, so dass Programmierung und Datenbankstruktur aufgrund bestimmter Änderungen nicht mehr zusammengepaßt haben! Also wenn Sicherung, dann bitte die DB *und* den dazu passenden PHP-Code zum Zeitpunkt X.

Solltest Du keinen eigenen SQL-Server haben (z.B. wenn Du bei 1&1 hostest, bei dem hunderte von Datenbanken auf einem zentralen Rechner lagern), mußt Du Dir was einfallen lassen. Oft ist dann ein Backup via phpMyAdmin ganz gut möglich, aber zeitaufwändig. Wirklich große Tabellen lassen sich aufgrund der maximalen Script-Ausführungszeit von (standardmäßig) 30 Sekunden dann nicht mehr sichern.


Grüße
TConnect
TConnect
 
Posts: 100
Joined: 31. March 2004 22:26

Postby Sebastian1 » 10. June 2005 17:15

Ich hab zwar die Seite MySQL gefunden aber seh noch nicht ganz durch.
Denn wenn ich nur ne Hompage mache brauch ich mich doch nich um die Sicherheit des Server's zu kümmern weil das ja der betreiber macht oder?

Und wie ist das nun mit der htaccess Datei muß man da die Passwörter hinein schreiben oder reicht das auch wenn Sie in der Datenbank verschlüsselt sind?
Sebastian1
 
Posts: 10
Joined: 22. February 2005 19:10

Datensicherheit

Postby TConnect » 11. June 2005 09:17

Hi,

also solange sich der Datenbankserver und der Webserver auf ein und derselben Maschine befinden kann man eigentlich davon ausgehen, dass es keine verschlüsselte Datenbankverbindung benötigt. Solange sich die Server im selben Subnetz befinden eigentlich auch nicht. Wichtig ist der Test, ob sich die Datenbank auch von außerhalb ansprechen läßt, was man testen kann, indem man sich auf seinem eigenen PC eben xampp installiert, dann den Webserver (und PHP) dazu verwendet, eine SQL-Verbindung eben nicht auf den eigenen DB-Server, sondern auf den Server im Web (bei Deinem Anbieter) zu realisieren. Schlägt das fehl, so ist der SQL-Server Deines Anbieters so konfiguriert, dass nur Rechner des selben Subnetzes (oder nur der eigene Rechner) auf die DB zugreifen dürfen (so weit ich mich nicht täusche kann man das über die Konfigurationsdatei in MySQL auch einstellen -> Port 0).

Ob Du die Passwort-Verifizierung über den Webserver nutzt (.htaccess) oder Dir über eine Sessionverwaltung selber eine bastelst, ist eine Frage des Geschmacks. Du mußt Dir einfach nur klar werden, dass es eben zwei verschiedene Möglichkeiten sind, ein und dasselbe zu erreichen: Zugriffsberechtigungen.

Ich für meinen Teil mache das datenbankgestützt, da ich mir somit folgendes erspare:

1. die Pflege der .htaccess Datei
2. das System muß nicht in verschiedene Ordner aufgeteilt werden

Weiterhin hast Du ja wahrscheinlich sowieso vor, die Daten dynamisch zu generieren, dann macht es auch Sinn, die Verifizierung über eine selbstprogrammierte DB-Lösung zu machen und eben keinen "Medienbruch" bezüglich extern zu pflegener .htaccess Dateien zu vollziehen.


Grüße
TConnect
TConnect
 
Posts: 100
Joined: 31. March 2004 22:26

Postby Sebastian1 » 11. June 2005 16:25

Also könnt ich meine Seite so Aufbauen:

Formular -> Daten Verschlüsseln -> Daten in Datenbank Speichern

Das Verschlüsseln passiert dann mit einem eigen's geschriebenen Programm.
Wenn ich das hab, hat kein anderer mehr zugriff auf die Daten auch keinen Lesezugriff. und ich benötige keine SSL Verbindung?

Nun noch die PHP-Dateien und die Verzeichnisse selber (also die Website) muß ich da noch was beachten?
Da hab ich was über Zugriffsrecht gelesen weiss aber nicht wie ich Sie einbauen sollte.

ich dank dir erst mal für die Infos bis hier her
Sebastian1
 
Posts: 10
Joined: 22. February 2005 19:10

Ich wei nicht, ob es Sinn macht...

Postby TConnect » 13. June 2005 16:59

Hi,

also ich weiß nicht, ob es grundsätzlich Sinn macht, Daten verschlüsselt in einer Datenbank zu speichern. Bei Paswörtern macht das Sinn (md5($password)) und bei Kreditkartendaten auch noch. Nachteil ist, wenn Du Daten in den einzelnen Spalten verschlüsselt ablegst, kannst Du weder filtern, noch sortieren. Eine alphabetisch aufsteigende Adressenliste ist dann nicht mehr möglich, und das ist ärgerlich.

Du solltest Dir also überlegen, was genau Du brauchst.

1. Wenn SQL-Server und Webserver zwei physikalisch getrennte Computer sind, die ihre Daten über das Internet austauschen, muß m.E. eine verschlüsselte SQL-Verbindung her (wie, hab ich noch nie nach geschaut). Die Verbindung selbst ist dann Secure, die Daten selbst werden dann aber unverschlüsselt in der DB gespeichert.

2. Wenn SQL-Server und Webserver physikalisch identisch sind, reicht m.E. sowohl eine unverschlüsselte Verbindung (man kann diese ja auf den Rechner selbst zulassen) und es reicht auch, die Nutzdaten unverschlüsselt zu speichern.

Die Sicherungsmechanismen des SQL-Servers sind schon sehr gut. Man sollte dann halt drauf achten, starke Passwörter zu nutzen und möglichst rechtzeitig nach Bekanntwerden von Fehlern die Patches aufzuspielen. Dann ist die Sache eigentlich schon rund.


Grüße TConnect
TConnect
 
Posts: 100
Joined: 31. March 2004 22:26

Postby Sebastian1 » 16. June 2005 18:33

Ok nun hab ich's endlich gerafft ich dank dir erstmal
Sebastian1
 
Posts: 10
Joined: 22. February 2005 19:10


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests