deluxel
Goto Top

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)

Content-ID: 30709

Url: https://administrator.de/contentid/30709

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

Schrottie
Schrottie 19.04.2006 um 15:20:00 Uhr
Goto Top
Wass willst du machen nur eine Seite nach dem PW ausgeben oder z.B.: ein Admin Center?
fachinformatiker
fachinformatiker 19.04.2006 um 15:23:55 Uhr
Goto Top
Sicher ? Wenn du das Passwort so im Klartext in den php-Code schreibst ? Du weisst schon, dass man den Code bei PHP jederzeit lesen kann ?
deluxel
deluxel 19.04.2006 um 15:38:03 Uhr
Goto Top
Es soll für ein Admin Center sein oder in einnen bereich wo wichitge passwörter stehen solte also sicher sein

Dann zu fachinformatiker wie kam man jederzeit den Code auslesen (kan es sein das du es mit javascript verwegstelst?)?
Nippie
Nippie 19.04.2006 um 22:20:40 Uhr
Goto Top
Das script wie es da steht, kann mann einfach auslesen...Besser wäre es wenn du das pw auf eine unbekannte seite hinterlegst...Das ist aber auch unsicher.

Wie sieht es mit .htaccess aus (Das ist auch gaaaaaaaaaaaaaaaanz einfach)


mfg nippie
Enclave
Enclave 19.04.2006 um 22:31:20 Uhr
Goto Top
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 face-wink


Mfg Enclave
pi314
pi314 20.04.2006 um 10:12:18 Uhr
Goto Top
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
  1. schöner aussieht (sonst hast den ganzen Summs in der Adresszeile)
  2. 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 face-wink)

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 face-smile)

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
deluxel
deluxel 20.04.2006 um 17:20:12 Uhr
Goto Top
Die idee mit .htacces hate ich auch schon wolte es aber ohne machen da ich es mehr zum lernen mache und auch ander Wege kennenlernen möchte ich habe er jetz so

1. In einen Formular wird nach passwort und pw abgefragt
2. Das Formular wird in einer andern Datei übergeben
3. Duch "if (pw==test AND user==admin){der hatml text}" geschützt

Ist es so möglich für einen user der ich nicht kenen (d.h. ohne ftp ssh usw passwrörter) die eingabe zu knacken? Und was solte ich verbessern ich denke mal das ich noch md5 einbauen werde (das sagt mir aber nicht were nicht schlecht wen ihr mir sagen köntet wie ich die pw´s verschlüsel und endschlüßel)
Schrottie
Schrottie 20.04.2006 um 17:32:24 Uhr
Goto Top
$original_passwort = "dc647eb65e6711e155375218212b3964"; // Passwort mit md5 verschlüsselt  

$eingegebenes_passwort = md5($pw);

if($eingegebenes_passwort == $original_passwort && $user=="admin")  
{
  //QUELLTEXT:
}

mit md5 verschlüsselte Strings können meines Wissens nicht entschlüsselt werden.

Schrottie
deluxel
deluxel 20.04.2006 um 17:35:22 Uhr
Goto Top
und wie verschlüsel ich die?
also woher weis ich was zB test in md5 bedeuten würde?
Schrottie
Schrottie 20.04.2006 um 17:38:07 Uhr
Goto Top
das steht da doch:

md5();

Wenn du wissen willst was "test" verschlüsselt heißt:


<?php
echo md5("test"); // Gibt den String "test" verschlüsselt aus.
?>
deluxel
deluxel 20.04.2006 um 17:59:43 Uhr
Goto Top
aso versteh schon
thx