Login sicher ?

Nucleus

Erfahrenes Mitglied
Kann mir jemand sagen ob das login script funktioniert und keine lücken mehr hat, wenn ja dann sagt mir bitte wie ich es besser machen könnte


Benutzername:Chris
Kennwort123

Test

Hier Code


PHP:
admin.php
<form action="error404.php" method="post">
  Benutzername: <input type="text" name="username" size="30">
  <br>
  Kennwort: <input type="password" name="password" size="30">
  <br>
  <input type="submit" value="Absenden">
</form>

error404.php

<?php
session_start();

session_register("username", "password");



if ($username == "chris" and  $password == "123"){

echo "<a href=\"adminbereich.php?".session_name()."=".session_id()."\">text</a>";
}else{
echo "Falscher Username oder Passwort!";
}

?>

adminbereich.php
<?
session_start();

// Ab jetzt ist ganz normaler Zugriff auf die Variablen möglich.
echo $username;
echo $password;
?>
 
an sich is es schon sicher ...
die meisten raten aber nur die kodierte version des passworts in ner datenbank abzulegen.
beim login das passwort dann kodiern und beide kodierte versionen miteinander zu vegleichen

das is noch sicherer
 
Danke werd ich noch machen - hab noch eine frage wie sichere ich dann weitere seiten - hab das mal so :

PHP:
<?



session_start (); // Session starten.

if ($username) {   
echo" Hier deine Seite";
        } else {
  	echo "Du bist nicht berechtigt diese seite zu sehen";
} 
?>

nur wenn ich im explorer 3 mal auf aktualisieren gehe dann logt er sich ein hmmm ? Kannst du mir helfen ?


Hier test
 
Am besten schreibst du ein File secure.php oder ähnlich.
PHP:
<?php

session_start();

if (isset($Submit))
{

	if (isset($user_id) && isset($password)) 
	{
		$db_host = "your_host";
		$db_name = "your_database";
		$db_usrnam = "your_username";
		$db_passwd = "your_pass";

		$link = mysql_connect($db_host,$db_usrnam,$db_passwd);
		mysql_select_db($db_name);
		$query=("SELECT
				*
			FROM
				USER_TABLE
			WHERE
				USER_LOGIN = '$user_id' AND
				USER_PASSWORD = '$password'");

		$result = mysql_query ($query);
		$num = mysql_num_rows ($result);
		if ($num != 0){
			$row = mysql_fetch_array ($result);
			$verified_user = $user_id;
			$auth = true;
			$user_group = $row["USER_GROUP_ID"];
			session_register ("verified_user");
			session_register ("user_group");
			session_register ("auth");
			Header ("Location: index.php");
                        // Wenn authorisiert dann geht er auf deine Startpage.
		}
		if (!$auth)
		{
			Header ("Location: auth_form.html");
                        // Wenn nicht dann schickt er dich zum formular für die eingabe von user/pass. 

		}
		mysql_close ($link);
	}
	
}


if (isset($auth))
{

	echo (session_is_registered($auth));
	if ($auth == 1 && session_is_registered("auth"))
	{
		echo ("Logged as: ".$verified_user);
	}
	else
	{
		Header ("Location: auth_form.html");
	}
}
else if (!isset($auth))
{
	Header ("Location: auth_form.html");
}

?>
 
Diese datei includest du auf jeder seite. Wenn $auth (session variable) true ist dann geht er einmal durch ohne was zu machen und stellt deine seite ohne probs da.
Ist die Session abgelaufen oder $auth is aus irgendnem anderen grund false dann schickt er dich zurück zum formular für die eingabe, diese werden dann an secure.php (die datei oben) gepostet und überprüft. Sind die eingaben korrekt geht's wieder zur index seite.


Hoffe das hilft dir weiter

So Long
TheVirus
 
hmm danke das ihr mir helft - mein problem is das das ich es mit textdateien mache - aber danke mal ich schau mir das einmal an
 
Im grundegenommen isses das selbe Skript. Nur musst du die Stellen wo ich inner DB rumsuche in deinem Text file suchen.

So Long
TheVirus
 

Neue Beiträge

Zurück