Kom ihåg mig?

[PHP] Bästa sätt att undvika SQL injections?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-02-21, 17:51 #1
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Hej!

Jag har en liten kort fråga.

Jag har läst rätt mycket om tekniker att STOPPA SQL injections, och har kommit på ett "bra" sätt att stoppa det, TROR jag?
Sättet är lätt att infoga i redan existerande kod och är rätt simpelt.
Frågan är nu bara om det fungerar i praktiken med?

Vanligaste sättet att stoppa sql injections (som jag sett) är genom att köra detta:
Kod:
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user), mysql_real_escape_string($password));

mysql_query($query);
Den kommer dock ta massor av tid att ersätta denna med den ursprungliga koden.
Därför kom jag på ett annat alternativ, eftersom det är variablarna som kommer genom $_POST och $_GET som ska escapas, borde inte detta funka 100ggr bättre?

Kod:
// denna funktion placeras i en extern functions.php fil.
function e($str) {
   return mysql_real_escape_string($str)
}

$user = e($_POST['user']);
$pass = e($_POST['pass']);

$sql = "SELECT * FROM users WHERE user='$pass' AND password='$user';"
mysql_query($sql);
Kommer mitt sätt ens att fungera?
Kommer det fungera BRA? och är det tillräckligt säkert?
Varför använder alla den andra "tekniken" igentligen?

Hjälp mig!

mvh Jim
Jine är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017