• 2 رای - 4.5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
SQL injection
#1
سلام ما وقتی از یه سری توابع برای جلوگیری از تزریق در برناممون استفاده میکنیم چه جوری میشه فهمید که درست عمل می کنه یا نه.راستش من خیلی جستجو کردم ولی نمیدونم چه جوری باید این موارد رو تست کرد
  پاسخ
تشکر شده توسط :
#2
تو این لینک کامل در مورد حملات sql injection توضیح داده

http://www.unixwiz.net/techtips/sql-injection.html

راه جلوگیریشم استفاده از همون توابعی هست که میگی
http://ir.php.net/manual/en/function.mys...string.php

فقط این دستور یه باگ داره که باید چک کنی ببینی که magic_quotes_gpc مقدارش on هست یا نه که با استفاده از این تابع اون مشکل هم حل میشه

کد پی‌اچ‌پی:
<?php
function stripMagicQuotes($var){
    if(
get_magic_quotes_gpc()){
        return 
stripslashes($var);
    }else{
        return 
$var;
    }
}
?>
  پاسخ
تشکر شده توسط : Alimokhlesi scooter molana HiddeN
#3
سلام

این توابع تست شدست . اما اگه دوست دارید که سایت رو از نظر امنیتی چک کنید، می تونید از اسکنر های سایت استفاده کنید.

نرم افزارهای زیادی دراین مورد وجود داره که باید جستجو کنی . یکی رو تهیه کن و برنامه رو با اون از لحاظ امنیت به ویژه SQL Injection بررسی کن ! Blush

اما راه حل دیگه ای هم وجود داره . من کلیات رو میگم و شما به جزئیات بپرداز .
شما در زمنیه امنیت و راه های نفوذ تحقیق کن . در برابر تمام این روش ها می تونید به راه های مبارزه با اون دست پیدا کنید . اصولا با قواعد خاصی انجام میشه . مثلا همین SQL Injection رو نگاه کن راه جلوگیری ازش با " \ " انجام میشه . خوب به سادگی میتونی تابع رو تست کنی و یا حتی خود سایت رو ....
  پاسخ
تشکر شده توسط :
#4
الان من اینو استفاده کردم اما وقتی مثلا می نویسم d'd این ارور رو میده
نقل قول: no qusYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'f','f','5457','s','1','

f
')' at line 1
  پاسخ
تشکر شده توسط :
#5
كوئري كه نوشتي رو بزار بببينيم
  پاسخ
تشکر شده توسط :
#6
کد پی‌اچ‌پی:
$sql="INSERT INTO up(filename,filework,fileadd,address,fileos,filecomm) values ('$uname','$uwork','$newname','$ulname','$uos','$uall')" ;
$result=mysql_query($sql) or die ("no qus".mysql_error()); 
  پاسخ
تشکر شده توسط :
#7
خوب ننوشتی که کجا این آپدیت انجام بشه
کد پی‌اچ‌پی:
    $sql="INSERT INTO up(
                        filename,
                        filework,
                        fileadd,
                        address,
                        fileos,
                        filecomm
                ) values (
                        '
$uname',
                        '
$uwork',
                        '
$newname',
                        '
$ulname',
                        '
$uos',
                        '
$uall') 
                WHERE `id` =1 " 

همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#8
ببخشید من متوجه این where نمیشم.یعنی اگه id=1 نبود تکلیف چیه؟
  پاسخ
تشکر شده توسط :
#9
نه ببین
شما آی دی رو برابر با آی دی اون ردیفی که می خوای آپدیتش کنی قرار می دی
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#10
بازم من متوجه نشدم.من از کجا بدونم الان id اون ردیف چنده؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان