webForumDet fria alternativet

Säkerhet

1 svar · 126 visningar · startad av oelbal

oelbalMedlem sedan jan. 20014 973 inlägg
#1

Jag är mycket mån om säkerheten hos mitt adminsystem, men just säkerhetsfrågor är inte min starka sida.
Följande kod har jag använt för att kolla om användaren är, så att säga, en verklig användare:

login.PHP

<?
function CheckUsernameAndPassword($loginuser,$loginpass) {
	 include("secure/files/sensitive/databaseconnections.php");
         if (isset($loginuser) && isset($loginpass)) {
             $sqlquery = "SELECT id, nick FROM users WHERE name='$loginuser' AND pass=PASSWORD('$loginpass')";
             $res = mysql_query($sqlquery);
             $row = mysql_fetch_array($res);
             if (isset($row['id'])) {
                 session_start();
                 $uid = $row['id'];
                 $unick = $row['nick'];
                 session_register('uid');
                 session_register('unick');
                 Header("Location: secure/files/right.php");
             }
             else {
                 Header("Location: wrong.php");
             }
         }
}

if (isset($submit)) {
         CheckUsernameAndPassword($username,$password);
}
?>
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>

<form action="login.php" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br><br>
<input type="submit" value="Login" name="submit"></td>
</form>
                
</body>
</html>

right.PHP

<?
session_start();
if (!session_is_registered("uid") &#0124;&#0124; !session_is_registered("unick") &#0124;&#0124; !isset($uid) &#0124;&#0124; !isset($unick))
{
Header("Location: Någonstans");
}

?>
<html>
<head>
</head>

<body>

Det fungerade!

</body>
</html>

Hur kan man tänka sig att hackern går tillväga för att knäcka detta, och finns det några bra sätt att göra kontrollen utav användare säkrare?
ahhh, det kan finnas fel i koden eftersom jag skrev ihop den lite hastigt.... :)

------------------
<[MK]> gamla människor bör inte titta på TV.

Alpha IIMedlem sedan maj 20002 993 inlägg
#2

Du måste kontrollera lösenordet och användarnamnet på varje säker sida. tex om någon skriver "right.php?uid=x&unick=x" i adressen så kommer han ändå in på sidan.

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)