Autor Zpráva
Jonáš1
Profil *
Ahoj, udělal jsem si kod na automatické přihlášení(autologin)
<?php
if($_COOKIE['autologin_active']=="1" && strlen($_COOKIE['autologin_login'])>0 && strlen($_COOKIE['autologin_heslo'])>0 && strlen($_COOKIE['autologin_idses'])>0){
if(isset($_GET["strana"]) and $_GET["strana"] == "login") {
 $search_user = mysql_query("SELECT password FROM users WHERE login=\"".$_COOKIE['autologin_login']."\" ");
 if(mysql_num_rows($search_user)>0){
  list($search_user) = mysql_fetch_array($search_user);
  if($_COOKIE['autologin_heslo']==md5(md5($search_user))){
  
   $_SESSION["username"]=$_COOKIE['autologin_login'];
   $_SESSION["idses"]=$_COOKIE['autologin_idses'];
  }
}
}elseif ($login && $heslo) {
 $search_user=mysql_query("SELECT * FROM users WHERE login=\"$login\" and password=\"$heslo\" ");
 $sql=mysql_fetch_array($search_user);
 if(mysql_num_rows($search_user)){
 $_SESSION["username"]=$sql['login'];
if ($_POST['autologin']==1) {
  setcookie("autologin_active", "1", time()+(12*365*24*60*60));
  setcookie("autologin_login", $login, time()+(12*365*24*60*60));
  setcookie("autologin_heslo", md5(md5($heslo)), time()+(12*365*24*60*60));
  setcookie("autologin_idses", iduser($login, $heslo), time()+(12*365*24*60*60));
}
$_SESSION['idses'] = true;
 }
}

}

?>


problém je že se to dá hacknout nějak přes URL adresy javascript idses=[id].... a samo se to přihlásí za uživatele

dá se to nějak tento kod zabezpečit?
Tori
Profil
Dají se ošetřit vstupy do DB (mysql_real_escape_string).
Odkud se berou proměnné $login a $heslo?
Co dělá funkce iduser() ? Jestli jen zjišťuje ID uživ., nešlo by číst z $sql['id'] ?

edit: Pořádně jsem si přečetla, co píšete o JavaScriptu - ošetření vstupů do DB sice zvýší bezpečnost, ale k tomu JS vám neporadím (nevím, jak se to dá nabourat).
Jonáš1
Profil *
Nabourat se to dá právě přes tento kod:
if($_COOKIE['autologin_active']=="1" && strlen($_COOKIE['autologin_login'])>0 && strlen($_COOKIE['autologin_heslo'])>0 && strlen($_COOKIE['autologin_idses'])>0)

já už bohužel taky nevím jak se to dalo nabourat, právě tento kus kodu sem smazal před rokem jak sem to zjistil, a teď ho tam chci zpět protože jedině tak mi běží autologin

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0