webForumDet fria alternativet
Logga in / Bli medlem

Säkerhet

PHP

1 svar · 126 visningar · startad av oelbal

Medlem sedan jan. 20014 973 inlägg
Frågan#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.... :)

Medlem 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.

254 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)