/
  • sql injection

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی sql injection
    نویسنده پیام
    vahidfaraji آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۸۸ مهر ۲۲
    اعتبار: 0
    تشکرها : 12
    ( 4 تشکر در 3 ارسال )
    ارسال: #1
    sql injection
    معني و مفهوم كد زير چيه؟ آيا مي شه ورودي ها رو با تابع زير فيلتر كنيم منظورم اينه كه اين تابع براي جلوگيري از sqlinjection كافيه؟

    کد:
    function Safe_SQL($Str_Input)
    {

        if(get_magic_quotes_gpc()): function_exists('mysql_real_escape_string') ? stripslashes(mysql_real_escape_string(&$Str_Input)) : stripslashes(mysql_escape_string(&$Str_Input));
        else: function_exists('mysql_real_escape_string') ? addslashes(mysql_real_escape_string(&$Str_Input)) : addslashes(mysql_escape_string(&$Str_Input));
        endif;

        return($Str_Input);
    }
    ۱۳۸۹ شهريور ۴ ۰۷:۰۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,766
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #2
    RE: sql injection
    این کد میاد قبل و بعد یک سرری کارکتر ها مثل " یک \ اضافه میکنه
    ۱۳۸۹ شهريور ۴ ۰۸:۴۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    vahidfaraji آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۸۸ مهر ۲۲
    اعتبار: 0
    تشکرها : 12
    ( 4 تشکر در 3 ارسال )
    ارسال: #3
    RE: sql injection
    (۱۳۸۹ شهريور ۴ ۰۸:۴۸ عصر)zoghal نوشته شده توسط:  این کد میاد قبل و بعد یک سرری کارکتر ها مثل " یک \ اضافه میکنه

    اينو مي دونم ولي مفهومش چيه؟
    مثلا يه قسمتش مي گه
    کد:
    addslashes(mysql_real_escape_string(&$Str_Input))
    اين يعني چي؟ يه بار مي آد با mysql_real_escape_string يه \ اضافه مي كنه و بعدش مي آد با addslashes يه \ ديگه اضافه مي كنه، چرا؟
    ۱۳۸۹ شهريور ۴ ۰۹:۳۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    bestirani2 آفلاین
    عضو
    ***

    ارسال‌ها: 87
    تاریخ عضویت: ۱۳۸۸ مهر ۱۷
    اعتبار: 0
    تشکرها : 2
    ( 49 تشکر در 36 ارسال )
    ارسال: #4
    RE: sql injection
    (۱۳۸۹ شهريور ۴ ۰۹:۳۴ عصر)vahidfaraji نوشته شده توسط:  
    (۱۳۸۹ شهريور ۴ ۰۸:۴۸ عصر)zoghal نوشته شده توسط:  این کد میاد قبل و بعد یک سرری کارکتر ها مثل " یک \ اضافه میکنه

    اينو مي دونم ولي مفهومش چيه؟
    مثلا يه قسمتش مي گه
    کد:
    addslashes(mysql_real_escape_string(&$Str_Input))
    اين يعني چي؟ يه بار مي آد با mysql_real_escape_string يه \ اضافه مي كنه و بعدش مي آد با addslashes يه \ ديگه اضافه مي كنه، چرا؟

    قبلش شرط کرده که آیا تابع mysql_real_escape_string موجود هست یا نه
    اگه موجود بود از همون و اگه نبود از addslashes استفاده میکنه
    ۱۳۸۹ شهريور ۴ ۱۱:۳۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    vahidfaraji آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۸۸ مهر ۲۲
    اعتبار: 0
    تشکرها : 12
    ( 4 تشکر در 3 ارسال )
    ارسال: #5
    RE: sql injection
    نقل قول: قبلش شرط کرده که آیا تابع mysql_real_escape_string موجود هست یا نه
    اگه موجود بود از همون و اگه نبود از addslashes استفاده میکنه
    نه ديگه، يه بار مي آد با mysql_real_escape_string يه \ اضافه مي كنه، بعدش مي آد با addslashes يه \ ديگه اضافه مي كنه كه در مجموع مي شه دو تا، اين يعني از بين بردن escape ، يعني عملا هيچ كاري نكرديم.
    ۱۳۸۹ شهريور ۵ ۱۱:۵۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    bestirani2 آفلاین
    عضو
    ***

    ارسال‌ها: 87
    تاریخ عضویت: ۱۳۸۸ مهر ۱۷
    اعتبار: 0
    تشکرها : 2
    ( 49 تشکر در 36 ارسال )
    ارسال: #6
    RE: sql injection
    کد PHP:
    function_exists('mysql_real_escape_string') ? addslashes(mysql_real_escape_string(&$Str_Input)) : addslashes(mysql_escape_string(&$Str_Input)); 
    اینطوری نیست function_exists('mysql_real_escape_string') که مشخص هست بررسی میکند تابع مورد نظر وجود دارد یا نه
    سپس ؟ شرط را ایجاد میکند و اگر جواب شرط true باشد عبارت قبل : و اگر نا درست باشد عبارت بعد : رو انجام میدهد
    یعنی تابع فوق وجود داشته باشد از اون استفاده میکند و اگه نداشته باشد از addslashes
    ۱۳۸۹ شهريور ۵ ۰۴:۳۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    vahidfaraji آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۸۸ مهر ۲۲
    اعتبار: 0
    تشکرها : 12
    ( 4 تشکر در 3 ارسال )
    ارسال: #7
    RE: sql injection
    (۱۳۸۹ شهريور ۵ ۰۴:۳۱ عصر)bestirani2 نوشته شده توسط:  
    کد PHP:
    function_exists('mysql_real_escape_string') ? addslashes(mysql_real_escape_string(&$Str_Input)) : addslashes(mysql_escape_string(&$Str_Input)); 
    اینطوری نیست function_exists('mysql_real_escape_string') که مشخص هست بررسی میکند تابع مورد نظر وجود دارد یا نه
    سپس ؟ شرط را ایجاد میکند و اگر جواب شرط true باشد عبارت قبل : و اگر نا درست باشد عبارت بعد : رو انجام میدهد
    یعنی تابع فوق وجود داشته باشد از اون استفاده میکند و اگه نداشته باشد از addslashes

    شما به ورودي تابع addslashes نگاه كن. وروديش، خروجي تابع mysql_real_escape_string هستش اين يعني دو بار \، درسته؟
    ۱۳۸۹ شهريور ۵ ۰۵:۰۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    bestirani2 آفلاین
    عضو
    ***

    ارسال‌ها: 87
    تاریخ عضویت: ۱۳۸۸ مهر ۱۷
    اعتبار: 0
    تشکرها : 2
    ( 49 تشکر در 36 ارسال )
    ارسال: #8
    RE: sql injection
    (۱۳۸۹ شهريور ۵ ۰۵:۰۱ عصر)vahidfaraji نوشته شده توسط:  
    (۱۳۸۹ شهريور ۵ ۰۴:۳۱ عصر)bestirani2 نوشته شده توسط:  
    کد PHP:
    function_exists('mysql_real_escape_string') ? addslashes(mysql_real_escape_string(&$Str_Input)) : addslashes(mysql_escape_string(&$Str_Input)); 
    اینطوری نیست function_exists('mysql_real_escape_string') که مشخص هست بررسی میکند تابع مورد نظر وجود دارد یا نه
    سپس ؟ شرط را ایجاد میکند و اگر جواب شرط true باشد عبارت قبل : و اگر نا درست باشد عبارت بعد : رو انجام میدهد
    یعنی تابع فوق وجود داشته باشد از اون استفاده میکند و اگه نداشته باشد از addslashes

    شما به ورودي تابع addslashes نگاه كن. وروديش، خروجي تابع mysql_real_escape_string هستش اين يعني دو بار \، درسته؟
    این تابع مشکل داره
    addslashes رو از خطر دوم حذف کنید تا درست بشه
    ۱۳۸۹ شهريور ۶ ۱۲:۳۲ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    vahidfaraji آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۸۸ مهر ۲۲
    اعتبار: 0
    تشکرها : 12
    ( 4 تشکر در 3 ارسال )
    ارسال: #9
    RE: sql injection
    نقل قول: این تابع مشکل داره
    addslashes رو از خطر دوم حذف کنید تا درست بشه
    اين درسته، من كه گفته بودم مشكلي وجود داره. ممنون.
    ۱۳۸۹ شهريور ۶ ۰۹:۱۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    bestirani2 آفلاین
    عضو
    ***

    ارسال‌ها: 87
    تاریخ عضویت: ۱۳۸۸ مهر ۱۷
    اعتبار: 0
    تشکرها : 2
    ( 49 تشکر در 36 ارسال )
    ارسال: #10
    RE: sql injection
    الان که خوب نگاه میکنم حتی قسمت
    stripslashes(mysql_real_escape_string(&$Str_Input)
    هم ایراد داره
    باید اول stripslashes رو به کار میگرفت
    این تابع رو از کجا آوردی؟
    ۱۳۸۹ شهريور ۶ ۱۱:۰۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS