PDA

View Full Version : مشکل امنیتی این کد



mohammad-gh
شنبه 12 شهریور 1390, 12:12 عصر
با سلام
تکه کد زیر را برای تغییر رمز مدیریت نوشتم ،‌به نظر شما این چه مشکل امنیتی داره که برخی از هکرها می تونن ازاون استفاده کنند


error_reporting(0);
if (isset($_POST['Submit']))
{
$newmd5oldpwd = md5($_POST['passold']);
$userold = $_POST['userold'];


$rs_search = mysql_query("select * from manager where password='$newmd5oldpwd' and username='$userold'");
$user_count = mysql_num_rows($rs_search);
if ($user_count != 0)
{
$newmd5pwd = md5($_POST['password']);
$newuser=$_POST['username'];
$newuser = stripslashes($myusername);
$newmd5pwd = stripslashes($mypassword);
$newuser = mysql_real_escape_string($myusername);
$newmd5pwd = mysql_real_escape_string($mypassword);

mysql_query("UPDATE manager set username='$newuser',password='$newmd5pwd' where password='$newmd5oldpwd' and username='$userold'");

mohammad-gh
سه شنبه 12 مهر 1390, 18:57 عصر
آقا یکی کمک کنه !
این کدها دراه سایتم رو نابود می کنه

binyaft
سه شنبه 12 مهر 1390, 19:04 عصر
$rs_search = mysql_query("select * from manager where password='$newmd5oldpwd' and username='$userold'");

ورودی های این کوئری Escape نشده :)

mohammad-gh
پنج شنبه 14 مهر 1390, 18:24 عصر
ممنون از توجه دوستان
مشکل دیگری به نظر شما نمیرسه
منظورتون رو از escape متوجه نشدم
چونمن که تو همون کدهای بالایی این کار رو انجام دادم

$newuser = mysql_real_escape_string($myusername);

یعنی جای اشتباهی استفاده کردم !!

binyaft
جمعه 15 مهر 1390, 22:49 عصر
برای $userold این رو نذاشتید .

mysql_real_escape_string();

mohammad-gh
شنبه 23 مهر 1390, 19:49 عصر
حالا به نظر شما مشکل SQL Injection حل شده
مشکل دیگری به نظرتون نمیاد