نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: SQL Injection Defence

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو انجمن ShahreServer آواتار ها
    تاریخ عضویت
    Aug 2010
    محل سکونت
    شیراز
    نوشته ها
    108
    تشکر تشکر کرده 
    97
    تشکر تشکر شده 
    286
    تشکر شده در
    152 پست

    پیش فرض SQL Injection Defence

    -------------------------------
    برای جلوگیری از اینگونه حملات ، چندین راه در پیش دارید. اولین راه قرار دادن magic_quotes_gcp به صورت on است . با انجام این کار کاراکتر Apex در کوکی ها و ارسال هایی که توسط روش GET و POSTانجام میگریند ، ***** شده و از بین میروند. همانطور که دیدید ، کاراکتر Apex نقش مهمی در ایجاد یک حمله موفق تزریق کد های SQL بازی میکند و نبود آن باعث شکست حمله ما میشود.
    روش دیگر استفاده از تابع addslashes() است.این تابع کاراکتر های مربوط به ارسال های پایگاه داده ها مانند ( ‘ ) و ( " ( و NUL را با یک اسلش ( / ) همراه میسازد.به طور مثال :


    <?
    //addslashes() Function example
    //Attack and defence php apps book
    //shahriyar - j
    $str = "Is your name Shahriyar'j?";
    echo addslashes($str);
    // Outputs: Is your name Shahriyar\'j?
    ?>

    همانطور که میبینید کاراکتر ( ‘ ) ***** شد.
    راه دیگر برای در امان ماندن از این حملات استفاده از تابع Mysql_escape_string() است.این تابع نیز همانند تابع Addslashes() عمل میکند.ببینید:


    <?
    //mysql_escape_string() Function example
    //Attack and defence php apps book
    //shahriyar - j
    $item = "shahriyar-j's Book";
    $escaped_item = mysql_escape_string($item);
    printf("Escaped string: %s\n", $escaped_item);
    // Outputs: shahriyar-j\'s Book
    ?>

    یکی دیگر از روش هایی که میتوان برای جلوگیری از این حملات به کار برد استفاده از توابعIs_numeric() و Is_int برای گرفتن شماره کاربری است.
    آخرین راهی که برای جلوگیری از این حملات به ذهن من میرسد استفاده از تابع array_map() است.یکی از کاربرد هایی که این تابع به ما ارائه میدهد ، اعمال یک تابع بر روی ورودی هایی که به صورت آرایه هستند ،است.برای فهم این موضوع به مثال زیر دقت کنید:


    <?
    //array_map() Function Example
    //Attack and defence php apps book
    //shahriyar - j
    <?php
    function cube($n)
    {
    return($n * $n * $n);
    }
    $a = array(1, 2, 3, 4, 5);
    $b = array_map("cube", $a);
    print_r($b);
    ?>

    در کد های بالا با استفاده از تابع array_map() کاری کردیم که تابع cube با استفاده از هر یک از داد های موجود در آرایه $a اجرا شده و مقداری جدید ، ایجاد کند. نتیجه کد های بالا به صورت زیر خواهد بود.


    Array
    (
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
    )


    اکنون میتوان از این تابع به صورت زیر برای جلوگیری از حملات تزریق کد های SQL بهره جست.


    $_GET = array_map('stripslashes', $_GET);
    $_POST = array_map('stripslashes', $_POST);
    $_COOKIE = array_map('stripslashes', $_COOKIE);
    $_GET = array_map('mysql_real_escape_string', $_GET);
    $_POST = array_map('mysql_real_escape_string', $_POST);
    $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
    $_GET = array_map('addslashes', $_GET);
    $_POST = array_map('addslashes', $_POST);
    $_COOKIE = array_map('addslashes', $_COOKIE);


    با انجام هر یک از توابع بر روی روش ها ارسالPOST ، COOKIE و GET کاراکتر های خاصی را که برای حمله مورد نیاز هستند ، ***** کرده و حمله را ناموفق میکنیم.البته شما میتوانید با استفاده از خلاقیت خود روش های جدیدی برای جلوگیری از این حملات ایجاد نمایید.
    نکته : از روش هایی که در آنها از توابع خاص استفاده شده است، تنها در صورتی استفاده کنید که مقدار magic_quotes_gpc برابر OFF باشد. برای این کار میتوانید از یک شرط ساده استفاده کنید:


    if(!get_magic_quotes_gpc())
    {
    Filter codes
    Escape codes
    Filter codes
    Escape codes
    Filter codes
    Escape codes
    }


    پایان
    ویرایش توسط ShahreServer : August 21st, 2010 در ساعت 23:53
    http://ShahreServer.com
    سرور مجازی از 10.000 تومان |-| نمایندگی هاست لینوکس |-| هاستینگ

  2. تعداد تشکر ها ازShahreServer به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مشکل sql injection
    توسط rezah در انجمن PHP-MySQL
    پاسخ ها: 2
    آخرين نوشته: November 19th, 2017, 13:50
  2. جلوگیری از هک sql injection
    توسط mashhadweb در انجمن PHP-MySQL
    پاسخ ها: 5
    آخرين نوشته: March 18th, 2015, 17:23
  3. جلوگیری از حملات Sql injection
    توسط yastheme در انجمن PHP-MySQL
    پاسخ ها: 1
    آخرين نوشته: November 10th, 2013, 11:42
  4. sql injection
    توسط 0senjed0 در انجمن سوالات و مشکلات
    پاسخ ها: 2
    آخرين نوشته: August 16th, 2012, 17:46

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •