» »

php login - simple

php login - simple

hidetr ::

Yo, ne spoznam se dosti na varnost pri php-ju in sem še kar nov v tem jeziku... so bare with me.

Videl sem pri kolegu, da uporablja razmeroma preprosto scripto za login:

function logIn($username, $password){
$pass= stripslashes($password);
$user= stripslashes($username);

$query = sprintf("SELECT * FROM login WHERE _user='%s' and _pass='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($pass));

$result = mysql_query($query);

if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}

$count=mysql_num_rows($result);
if($count==1){
return $user;
}
else{
return false;
}
}

Sem probal malo potestirat doma in deluje v redu. Rabil bi nekaj podobnega za eno izy stran.

Kako je z varnostjo ? je to varno pred injectioni?

Looooooka ::

teoreticno gledano bi mogl bit.
lahko pa zacnes kj bl objektnega uporabljat, kjer je za te zadeve poskrbljeno
v phpju mas baje tole:
http://pear.php.net/manual/en/package.d...
pa kksna opensource mysql wrapper knjiznica, ki skrbi za te zadeve tud obstaja.

hidetr ::

hvala

technolog ::

Ne, ni čisto kul. Sicer nič groznega, ampak kul.

if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}


Izdajanje notranjih podatkov napadalcu. Če napadalcu nekako uspe naredit error, oz. je po tvoji krivdi, dobi napadalec podatke, ki jih bolje da ne bi mel. To je sicer ranjljivost nižjega ranga, ne skrbet, ampak vseeno raje logiraj napake v datoteko ali bazo.

In ni treba uporabljat knjižnic, samo ustvarjajo nepotrebne odvisnosti od tuje kode. Edino funkcijo mysql_real_escape_string() lahko skrajšaš v mres(), ker je res nemarno dolga.

function mres($str) {return mysql_real_escape_string($str);}

Zgodovina sprememb…

hidetr ::

res je error sem imel za test,

tnx za okrajšavo ;D

jype ::

Za formatiranje SQL poizvedb uporabi generično funkcijo ki prepreči vrivanje, ali pa še bolje: Uporabi ORM kakšnega ogrodja za take reči. Zadnje čase je popularen http://www.symfony-project.org/

technolog ::

Ja, pet mega velik framework za izdelavo login skripte. Čestitke.

krho ::

jype: pa ne linkat na staro verzijo no: symfony2 stabilna od konca julija, uporabna, po mojih izkušnjah že celo letošnje leto :) Čeprav, če bo tule se šel z loginom ukvarjat bo doktorat naredil preden bo skupaj spravil kaj konkretnega, razen če skopira vse skupaj iz primera :D. Sva pa oba offtopic. Je technolog lepo popravil.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

FrEaKmAn ::



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PHP povezava z Mysql

Oddelek: Izdelava spletišč
16914 (759) snooze77
»

mySQL prikaz apostrof

Oddelek: Izdelava spletišč
91087 (974) -=aVa=-
»

MySQL Query Vprašanje

Oddelek: Izdelava spletišč
153189 (2954) overlord_tm
»

[php] Knjiga gostov

Oddelek: Izdelava spletišč
293147 (2350) darix
»

[PHP] moj forum :D

Oddelek: Izdelava spletišč
71517 (1356) medobear

Več podobnih tem