php Passwortschutz mit if und then
Ich wolte mal fragen ob der folgende php script sicher ist als passwortschutz.
<?php
if (pw==test) {?> der html script <?}
?>
Würde gerne wissen ob der script sicher ist und welchen script ich besser nehmen solte und wie es (wen es möglich ist) so ein script geknackt werden kann (außer mit einer brute force)
<?php
if (pw==test) {?> der html script <?}
?>
Würde gerne wissen ob der script sicher ist und welchen script ich besser nehmen solte und wie es (wen es möglich ist) so ein script geknackt werden kann (außer mit einer brute force)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 30709
Url: https://administrator.de/contentid/30709
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
@fachinformatiker:
Es ist nicht möglich(auf keine Art und weise) den PHP-Code einer Seite auszulesen es sei den man kennt das FTP-Passwort oder sonstigen Zugang zu der Datei(oder BruteForce).
@deluxel:
Es ist teilweise sicher. Denn die Datei auf der das Passwort steht ist nicht geschützt, d.h.:
Wenn ich jetzt den Ordner habe "admin" und dort sind vollgende Dateien drinn:
- index.php (if --> then abrfage)
-menu.php
Jetzt ist die Methode zwar sicher aber wenn ich jetzt auf die Idee komm in der Adresszeile die Datei menu.php anzuschreiben wird das funktionieren. Das einzige was du machen könntest die Abfrage und das Menü alles in einer Datei zu speichern dann könntest du das eventuell mit den POST-daten regeln.
Sonst bleibt dir wohl nur die Möglichkeit mit Sessions oder Cookies.
Sofern du aber einen Server hast der .htaccess zuläst und die Benutzer fest sind(also keine Anmeldung durch phpscripte) kannst du das so lösen. Ansonsten ist das hier nen schönes Script:
Powie's Anmeldescript
Das ist zwar eigentlich für was anderes aber das ist ja egal
Mfg Enclave
@fachinformatiker:
Es ist nicht möglich(auf keine Art und weise) den PHP-Code einer Seite auszulesen es sei den man kennt das FTP-Passwort oder sonstigen Zugang zu der Datei(oder BruteForce).
@deluxel:
Es ist teilweise sicher. Denn die Datei auf der das Passwort steht ist nicht geschützt, d.h.:
Wenn ich jetzt den Ordner habe "admin" und dort sind vollgende Dateien drinn:
- index.php (if --> then abrfage)
-menu.php
Jetzt ist die Methode zwar sicher aber wenn ich jetzt auf die Idee komm in der Adresszeile die Datei menu.php anzuschreiben wird das funktionieren. Das einzige was du machen könntest die Abfrage und das Menü alles in einer Datei zu speichern dann könntest du das eventuell mit den POST-daten regeln.
Sonst bleibt dir wohl nur die Möglichkeit mit Sessions oder Cookies.
Sofern du aber einen Server hast der .htaccess zuläst und die Benutzer fest sind(also keine Anmeldung durch phpscripte) kannst du das so lösen. Ansonsten ist das hier nen schönes Script:
Powie's Anmeldescript
Das ist zwar eigentlich für was anderes aber das ist ja egal
Mfg Enclave
Moin zusammen,
nochmal kurz zum "offenen PHP":
PHP-Code ist nicht auszulesen! Wie auch?
PHP wird serverseitig ausgeführt und liefert HTML zurück, der dann auf dem Client angezeigt wird.
An das Script kommt man also nur - wie mein Vorschreiber schon sagt - wenn man direkt auf den Server zugreifen kann.
Zur eigentlichen Frage:
Wenn sich hier verschiedene Benutzer anmelden sollen, würde ich eine MySQL-DB einsetzen.
Hier kannst du die verschiedenen Benutzer und deren Passwörter speichern.
Die PWD würde ich als MD5-Verschlüsselung speichern. So kann auch ein Benutzer, der Zugriff auf die DB hat, nicht die Passwörter erkennen, da diese Verschlüsselung nicht umkehrbar ist.
PHP stellt hier die Funktion md5( String str ) zur Verfügung.
Die Formulardaten (Passwort, Benutzer, etc.) musst du mit der POST-Methode übertragen, da es
Um das ganze aber sicher zu machen, auf jeden Fall das HTTPS-Protokoll verwenden.
Ansonsten kannst du nur mit if...then solche Abfragen auf Richtigkeit machen, mir würde da jetzt keine andere Funktion einfallen (auser case o. switch o. wie das in PHP heißt )
Nach erfolgreicher Anmeldung bleibt dir aber nichts anderes übrig, eine Session zu verwenden, da sonst - s.o. - einfach durch Eingabe in die Adresszeile der Client auf die Seite kommt.... (womit der Schutz fürn A..... wäre )
Da würde ich einfach eine Datei z.B. sessionCheck.php machen, die du dann in jede deiner Center-Seiten am Anfang includen kannst. Sie überprüft nur, ob die Session-Variable gültig ist; wenn ja, wird die Seite angezeigt, wenn nicht... dann halt nicht:
Beispiel:
Hoffe, ich konnte die einige Anregungen geben...
so long,
pi
nochmal kurz zum "offenen PHP":
PHP-Code ist nicht auszulesen! Wie auch?
PHP wird serverseitig ausgeführt und liefert HTML zurück, der dann auf dem Client angezeigt wird.
An das Script kommt man also nur - wie mein Vorschreiber schon sagt - wenn man direkt auf den Server zugreifen kann.
Zur eigentlichen Frage:
Wenn sich hier verschiedene Benutzer anmelden sollen, würde ich eine MySQL-DB einsetzen.
Hier kannst du die verschiedenen Benutzer und deren Passwörter speichern.
Die PWD würde ich als MD5-Verschlüsselung speichern. So kann auch ein Benutzer, der Zugriff auf die DB hat, nicht die Passwörter erkennen, da diese Verschlüsselung nicht umkehrbar ist.
PHP stellt hier die Funktion md5( String str ) zur Verfügung.
Die Formulardaten (Passwort, Benutzer, etc.) musst du mit der POST-Methode übertragen, da es
- schöner aussieht (sonst hast den ganzen Summs in der Adresszeile)
- sicherer ist...
Um das ganze aber sicher zu machen, auf jeden Fall das HTTPS-Protokoll verwenden.
Ansonsten kannst du nur mit if...then solche Abfragen auf Richtigkeit machen, mir würde da jetzt keine andere Funktion einfallen (auser case o. switch o. wie das in PHP heißt )
Nach erfolgreicher Anmeldung bleibt dir aber nichts anderes übrig, eine Session zu verwenden, da sonst - s.o. - einfach durch Eingabe in die Adresszeile der Client auf die Seite kommt.... (womit der Schutz fürn A..... wäre )
Da würde ich einfach eine Datei z.B. sessionCheck.php machen, die du dann in jede deiner Center-Seiten am Anfang includen kannst. Sie überprüft nur, ob die Session-Variable gültig ist; wenn ja, wird die Seite angezeigt, wenn nicht... dann halt nicht:
Beispiel:
session_start();
if( $_SESSION[ 'loggedon'] != 1 ) {
sleep( 3 );
echo( "So nicht, mein Freund" );
exit;
}
...hier der eigentliche Code
Hoffe, ich konnte die einige Anregungen geben...
so long,
pi