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

نمایش نتایج: از شماره 1 تا 1 از مجموع 1
Like Tree2نفر پسندیدند
  • 2 ارسال توسط Codex

موضوع: نحوه inject کردن MySQL با کلاس PDO

  1. #1
    کاربر عادی
    تاریخ عضویت
    2011 May
    محل سکونت
    تهران
    ارسال ها
    316
    تشکر
    37
    تشکر شده 688 بار در 303 پست
    نوشته های وبلاگ
    39


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    نحوه inject کردن MySQL با کلاس PDO

    با سلام
    نحوه inject کردن prepared statement ها بسیار سخت هست(در هر زبانی) و با رعایت چند نکته قابل حل هست، اما چطوری کلاس PDO در PHP قابلیت injection خواهد داشت، با یک مثال عملی با هم مورد رو بررسی می کنیم:

    اگر هنگام کوئری collation بر روی GBK و BIG5 ست شده باشد امکان اینجکت وجود دارد ، برای تست میتونین نمونه کد زیر را اجرا کنید:

    کد PHP:
    $pdo->query('SET NAMES GBK');
    $var chr(0xbf) . chr(0x27) . " OR 1=1 /*";
    $query "SELECT * FROM test WHERE name = ? LIMIT 1";
    $stmt $pdo->prepare($query);
    $stmt->execute(array($var)); 
    که هنگام اجرا به این صورت خواهد شد:

    کد PHP:
    SELECT FROM test WHERE name '𖠂' OR 1=/*' LIMIT 1 

    برای اینکه این مشکل کاملاً فیکس بشه، نیاز هست که از utf-8 استفاده کنید و یا اگر نیاز به GBK داشتین ATTR_EMULATE_PREPARES رو آف کنید:


    کد PHP:
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARESfalse); 


    موضوعات مشابه:
    Shojaee و Pouya این را میپسندند
    http://payline.ir

    http://flynet.ir

    the poor people are often the most generous

 

 

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

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

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


Powered by vBulletin
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 05:39 PM بر حسب GMT +4 می باشد.