Sicherheit - Ausführen erlauben, Speichern verbeiten?
TheFlu
- php
Tach,
ich hab eine Umfrage mit PHP und MySQL gemacht.
Um die Individualität der Benutzer und deren Eingeben zu gewährleisten gibt es einen Sicherheitswert der überprüft und nach abgeschlossener Umfrage verhindert das nochmal gefragt werden darf.
Das ganze ist auf einem recht einfachen Level und erfordert keine großen Sicherheitsmaßnahmen.
Ich wurde nun darauf hingewiesen, das sich fremde Benutzter einfach mit falschem Namen (wenn sie den Realnamen kennen) einloggen können und Unfug machen könnte. Das habe ich mit einer Passwort kontrolle verhindert. Das ist eine einfache IF-Abfrage, die die Eingabe und den entsprechenden Datenbankwert überprüft.
Jetzt ist mir aufgefallen das ja im PHP-Script die LogIn-Daten für die Datenbank stehen ($db = mysql_connect(host, tabname, PW);)
Man könnte nun das Script speichern, per Editor aufrufen und mit ein wenig Fantasie auch noch den Zugang für PHPMyAdmin rausfinden und schwups wäre man in der Datenbank.
Das sollte aber nicht passieren^^
Ich hab schon überlegt, dass mit .htaccess zu regeln aber man kann ja einer Datei nicht die Ausführung erlauben und das speichern verbieten oder doch??
Danke
P.S. Bin noch Laie auf dem Sicherheitsgebiet^^
Du musst dich mit der Fuktionsweise von PHP auseinander setzen, damit du verstehst, dass du dir darum keine Sorgen machen brauchst.
Der Aufruf eines Skripts funktioniert etwa so:
Ein Client macht eine Anfrage an den Server example.com - er will die Datei umfrage.php.
Der Webserver (z. B. Apache) erhält diese Anfrage und lädt das Skript. Wenn der Apache richtig Konfiguriert ist, und PHP installiert ist, gibt er das Skript an den PHP-Interpreter weiter. Dieser führt nun das Skript aus und gibt am Ende alle Ausgaben an den Webserver zurück, aber _keinen_ Code. Der Webserver schickt nun die Ausgabe zurück an den Client.
Zugriff auf das Skript selbst erhält man nur über FTP/SSH/..., hier wird nämlich kein PHP-Interpreter "zwischengeschaltet".
Super!
Kompetente, verständliche und schnelle Antwort und dazu noch positiv!
Jetzt bin ich glücklich.
Tach.
Der Webserver (z. B. Apache) erhält diese Anfrage und lädt das Skript. Wenn der Apache richtig Konfiguriert ist, und PHP installiert ist, gibt er das Skript an den PHP-Interpreter weiter. Dieser führt nun das Skript aus und gibt am Ende alle Ausgaben an den Webserver zurück, aber _keinen_ Code. Der Webserver schickt nun die Ausgabe zurück an den Client.
Soweit richtig. Allerdings sollte man sich nicht darauf verlassen, daß der Interpreter wirklich *immer* läuft und den Inhalt der Datei nicht direkt an den Client schickt. Steck die Zugangsdaten lieber in eine Datei außerhalb des Document Roots, so daß sie übers Web gar nicht abrufbar ist. PHP kann diese Datei dann mit include() übers Dateisystem auf dem Server einbinden.