PHP Login - Bitte mal drüberschauen

stronzo

Semiprofi
Thread Starter
Mitglied seit
20.06.2006
Beiträge
1.500
Hallo!
Ich bin kein Experte was PHP angeht, deswegen möchte ich euch mal meine Lösung für einen Login zeigen, der nach Passwort und Benutzerabfrage HTML Code anzeigt. Funktionieren tut eigentlich alles soweit, ich frage mich nur, ob das ganze realtiv sicher ist oder was man verbessern kann.
Also ich habe 2 Scripte und im Endeffekt nur einen einzigen Benutzeraccount.
Das erste Script ist nur das Formular. Ich hätte es auch direkt in HTML schreiben können aber das spielt ja keine Rolle:
Code:
<?php
echo "
<form action=\"check.php\" method=\"post\">
Username:<br>
<input type=\"text\" size=\"24\" maxlength=\"50\"
name=\"nm\"><br><br>

Passwort:<br>
<input type=\"password\" size=\"24\" maxlength=\"50\"
name=\"ps\"><br>

<input type=\"submit\" value=\"Login\">
</form> ";
?>

Das zweite Script wertet dann aus und gibt ganz am Ende, wenn der Login gültig ist, den HTML Text aus:
Code:
<?php
session_start();

$name = $_POST["nm"];
$pass = $_POST["ps"];
$logout = $_GET["logout"];

if ($logout == "true")
   {
   session_destroy();
   echo "Logout erfolgreich<br>Erneut <a href=\"login.php\">einloggen?</a><br>Zur <a href=\"../index.htm\">Startseite</a>";
   exit;
   }

if(isset($_SESSION['testuser']))
   {
   loggedin();
   }

if(!isset($_SESSION['testuser']) and ($name == "" or $pass == ""))
   {
   echo "Fehlende Angaben, bitte nochmal <a href=\"login.php\">einloggen</a>";
	exit;
   }

	elseif(!isset($_SESSION['testuser']) and ($name != "testuser" and $pass != "test1"))
		{	
		echo "Falsche Angaben, bitte nochmal <a href=\"login.php\">einloggen</a>";
		exit;
		}
   	elseif(!isset($_SESSION['testuser']) and ($name == "testuser" and $pass == "test1"))
   		{
   			$_SESSION['testuser'] = $name;
			loggedin();
   		}


function loggedin()
{
echo "Login erfolgreich, los gehts<br>";
echo "<p align=\"right\"><input type=\"button\" size=\"24\" name=\"logoff\" value=\"Logout\" onclick=\"self.location.href='check.php?logout=true'\"></p>";
}

?> 
htmltext

Ist das eine brauchbare Absicherung oder lässt sich das jetzt relativ leicht umgehen?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
So wäre es einfacher:

Code:
if(isset($_SESSION['testuser']))
   {
   loggedin();
   }
else
   {
   if($name == "testuser" and $pass == "test1")
   {
      $_SESSION['testuser'] = $name;
      loggedin();
   else
      echo "Falsche oder Fehlende Angaben, bitte nochmal <a href=\"login.php\">einloggen</a>";
   }
}
 
Stimmt, danke!
Wie sicher ist so eine Lösung? Lässt sich sowas schnell austricksen?
Man in the middle und so..?
 
Wie sicher soll es denn werden? Wenn es sich nur um den Zugang zu deiner privaten Pr0n Sammlung handelt, ist das sicher genug. Wenn du da aber streng geheime Daten absichern willst, sollte man vieleicht noch etwas verändern.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh