Въпрос за addslashes

c3c0

Registered
Извеждам регистрираните потребители по този начин:
profile.php?username=name
Така защитавам $_GET променливата:
$username = addslashes($_GET['username']);
Та достатъчно ли е да използвам само addslashes, за да защитя по някакъв начин сайта от SQL Injection или е хубаво да използвам и друга функция.
 
Така е мн. по-добре :

$username = htmlspecialchars(addslashes("$_POST[username]"));

http://web-tourist.net/login/login/view.php?st=2418

Цитат:

...Най-добрата комбинация е htmlspecialchars и addslashes. Така сте напълно защитени. Не се лъжете от това, което някои казват, че повече функции било по-добре защита. С повече функции можете само да си прецакате скрипта.
 
addslashes е достатъчно в случая. htmlspecialchars можеш да сложиш ако правиш директен принт на гет-а. Ето и една функция, която беше написал жорката в един урок:
Код:
function str_check($str) { return preg_match("/^[a-zA-Z0-9-_:]+$/",$str) ? $str : false;}
И аз ти предлагам да го направиш така:
if(str_check($_GET['username'])) {
if($row = mysql_fetch_assoc(mysql_query("select * from users where username = '".addslashes($_GET['username'])."'"))) {
print_r($row);
}
} else { die("dieeeeeeee"); }
Можеш да го направиш и така ако искаш :)
 

Back
Горе