Predmet:Re: zastita kod logiranja
mysqli_real_escape_string - izbjegava posebne znakove u nizu za upotrebu u SQL upitu.
Ova se funkcija koristi za stvaranje legalnog SQL niza koji se može koristiti u SQL izrazu.
Funkcija htmlspecialchars () pretvara neke unaprijed definirane znakove u HTML entitete.
Unaprijed definirani znakovi su:
& (ampersand) postaje & amp;
"(dvostruki navod) postaje & quot;
'(jedna citata) postaje & # 039;
<(manje od) postaje & lt;
> (veći od) postaje & gt;
addslashes() vraća niz s kosim crtama pred unaprijed definiranim znakovima.
Unaprijed definirani znakovi su:
jedan citat (')
dvostruki navod (")
kosa crta unazad (\)
Ako si primjetio vecina funkcija rade jednu te istu stvar odnosno skoro jedno te isto.
Sto se tice upisa u bazu najveci problem su znakovi koji se koriste na nivou sql-a odnosno predstavljaju nesto u skriptnom jeziku SQL.
Nevidm da se bas moze ubaciti zlonamjeran kod i ostetiti bazu podataka.
Naravno da moze doci do greske pri izvodjenju.
Primjer:
Neka nam je ime tabele korisnici koja ima polja
ID,Korisnicko_ime, sifra.
Ako iamo korisnicko_ime Marko a sifra '"1hs$
Sada da pokusamo napraviti select SQL string.
SQL="SELECT ID, korisnicko_ime, sifra FROM korinici WHERE ime='Marko' AND sifra =' '"1hs$";
Sad se vidi o cemu se radi.
Da bi poslali SQL string bazi moramo ga oiviciti sa znakom za string ali ta j znak imamo i samoj sifri tako da nism u mogucnosti ispravno napisati string.
U ovom slucaju bi mogli iskoristiti funkciju mysqli_real_escape_string.
Ako treba mogu jos ddati pojasnjenja.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.