suit: Sicherheit

Beitrag lesen

Wie funktioniert das mit PHP und Sicherheit? Wie kann ich zum Beispiel meine Datenbankpasswörter schützen, bzw. verhindern das ein User Zugriff auf meine ungeparste PHP-Datei hat?

Prinzipiell sollte ein Webserver mit ordentlich konfiguriertem PHP keinen Zugriff auf den Quelltext erlauben und immer nur die interpretierten Daten ausliefern.

Je nach Konfiguration kann es aber auch möglich sein, dass man einfach durch das anhängen eines "s" an die Ressource den Sourcecode ausgeben kann - dafür gibt es eigenen eigenen Handler der sich "php-source" nennt.

Prinzipiell sollte in keinem deiner Files irgendetwas drinnen stehen, was einem Angreifer einen Vorteil verschaffen könnte - dh, selbst wenn er den kompletten Quelltext hat, muss er nur "ja, schön" sagen können und dastehen wie am Anfang. Man muss hier nur verbreitete Open-Source-Software nehmen, da kann der Server abgesichert sein wie er will - wenn jemand an den Quelltext will muss er dich theoretisch nur fragen oder den Code aus der offiziellen Quelle laden.

Aber wir reden hier ja von Zugangsdaten, Schlüssel, usw. - diese liegen hoffentlich in isolierten Files und die gilt es getrennt zu schützen, sollte irgend ein Mechanismus fehlschlagen.

Hier kann man einen Datei- oder Verzeichnisschutz über den Webserver einrichten - z.B. per .htaccess oder direkt über die Webserverkonfiguration.

Aber auch dies kann fehlschlagen und dann liegen die Daten nackt da - darum ist es die Optimallösung sämtliche Konfigurationsdaten oberhalb des DocumentRoot zu plazieren, dann kann sie der HTTP-Server unmöglich ausliefern - das ist in der Praxis oft aber nicht möglich.

Darum sollten besonders Zugangsdaten die z.B. für den Datenbankserver gedacht sind niemals Vollzugriff haben sondern nur die rechte die gerade gebraucht werden - das kann z.B. nur lesender und schreibender Zugriff auf Tabellen sein, aber verbieten diese in ihrer Struktur zu verändern oder neue zu erzeugen oder gar neue Benutzer anzulegen (ALTER, GRANT ...)

Allgemein, wie ist ein Webverzeichnis aufgebaut?

Siehe oben.

Zum Beispiel Wo kommt ein Javascript File, wo ein PHP File, wo die Html Files und Wo zum Beispiel ein Bild? Wie sieht das ganze punkto Sicherheit aus?

Das ist eher persönliche Präferenz alsdass es mit Sicherheit zu tun hätte - mit Ausnahme natürlich sensibler Daten die von außen nicht (oder nur über "Umwege") gelesen werden dürfen.

Möchte mich in kürze an meiner ersten Website versuchen... Eine kleine feine Website über einen Kleinbetrieb... Dort soll auch ein Gästebuch zum Einsatz kommen, wo für ich PHP verwenden will...

Nimm eine fertige Lösung für das CMS oder das Gästebuch (und nicht einfach die erstbeste die du findest), wähle ein Hostingpaket bei einem professionellen Hoster der dir Backups macht und für die einwandfreie Funktion des Webservers steht - das ist bereits die halbe Miete.

Wordpress könnte in diesem Kontext für dich Interessant sein - das eignet sich womöglich ganz gut für eine kleine Website mit Gästebuch.

Wenn du alles selbst stricken willst, wird - ohne dich jetzt demotivieren zu wollen - dein erster Versuch ziemlich in die Hose gehen. Das ist wie beim Häuser bauen:

Baue dein erstes Haus für deinen schlimmsten Feind, baue das zweite Haus für deinen besten Freund und baue erst dein drittes Haus für dich selbst.