/
  • علت استفاده از این کد در این آموزش؟!

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

    حالت موضوعی | حالت خطی علت استفاده از این کد در این آموزش؟!
    نویسنده پیام
    Mob1n آفلاین
    عضو جدید
    **

    ارسال‌ها: 4
    تاریخ عضویت: ۱۳۹۳ مرداد ۱۵
    اعتبار: 0
    تشکرها : 8
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    علت استفاده از این کد در این آموزش؟!
    سلام.امروز داتم یه مثال ساده از آپلود کردن ها توی php میخوندم(از سایت w3school)
    کد زیرر رو ببنید!
    کد PHP:
    <?php
    $allowedExts 
    = array("gif""jpeg""jpg""png");
    $temp explode("."$_FILES["file"]["name"]);
    $extension end($temp);

    if (((
    $_FILES["file"]["type"] == "image/gif")
    || (
    $_FILES["file"]["type"] == "image/jpeg")
    || (
    $_FILES["file"]["type"] == "image/jpg")
    || (
    $_FILES["file"]["type"] == "image/pjpeg")
    || (
    $_FILES["file"]["type"] == "image/x-png")
    || (
    $_FILES["file"]["type"] == "image/png"))
    && (
    $_FILES["file"]["size"] < 20000)
    && 
    in_array($extension$allowedExts)) {
      if (
    $_FILES["file"]["error"] > 0) {
        echo 
    "Error: " $_FILES["file"]["error"] . "<br>";
      } else {
        echo 
    "Upload: " $_FILES["file"]["name"] . "<br>";
        echo 
    "Type: " $_FILES["file"]["type"] . "<br>";
        echo 
    "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo 
    "Stored in: " $_FILES["file"]["tmp_name"];
      }
    } else {
      echo 
    "Invalid file";
    }
    ?>

    کارش اینه که اگر فرمت عکس بود و حجمش کمتر از 20k آپلودش کنه! همه چی درسته مگر توی شرط if که یه دور با استفاده از FILES_$ تیپ فایل رو چک میکنه یه دور هم با string فرمت فایل بعد از ( . ) !
    چرا؟؟؟؟
    ۱۳۹۳ مرداد ۲۰ ۰۸:۰۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    saeideng آفلاین
    عضو
    ***

    ارسال‌ها: 151
    تاریخ عضویت: ۱۳۹۲ تير ۱۶
    اعتبار: 4
    تشکرها : 15
    ( 71 تشکر در 62 ارسال )
    ارسال: #2
    RE: علت استفاده از این کد در این آموزش؟!
    ممکنه type فایل با فرمت فایل یکی نباشه
    ۱۳۹۳ مرداد ۲۰ ۰۸:۴۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Mob1n
    webnevesht آفلاین
    محمدرضا سلطانی
    ***

    ارسال‌ها: 972
    تاریخ عضویت: ۱۳۹۰ آذر ۲۵
    اعتبار: 22
    تشکرها : 384
    ( 702 تشکر در 427 ارسال )
    ارسال: #3
    RE: علت استفاده از این کد در این آموزش؟!
    چند روز پیش یکی از بچه های بخش امنیت شرکت ازم خواست صرفا یه آپلودر ساده بهش بدم.برای کاری میخواست تست کنه. جلوی خودم توی یک دقیقه فایل PHP فرستاد. این وسط بعد از ارسال فرم و قبل از پردازشش توسط صفحه MimeType فایل رو به JPG تغییر داد و یه شل اسکریپت آپلود کرد و سایتو هک کرد.به همین سادگی به همین خوشمزگیBig Grin
    __________________________________________________________________________
    بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
    ۱۳۹۳ مرداد ۲۰ ۰۹:۱۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Mob1n
    Mob1n آفلاین
    عضو جدید
    **

    ارسال‌ها: 4
    تاریخ عضویت: ۱۳۹۳ مرداد ۱۵
    اعتبار: 0
    تشکرها : 8
    ( 0 تشکر در 0 ارسال )
    ارسال: #4
    RE: علت استفاده از این کد در این آموزش؟!
    (۱۳۹۳ مرداد ۲۰ ۰۹:۱۷ عصر)webnevesht نوشته شده توسط:  چند روز پیش یکی از بچه های بخش امنیت شرکت ازم خواست صرفا یه آپلودر ساده بهش بدم.برای کاری میخواست تست کنه. جلوی خودم توی یک دقیقه فایل PHP فرستاد. این وسط بعد از ارسال فرم و قبل از پردازشش توسط صفحه MimeType فایل رو به JPG تغییر داد و یه شل اسکریپت آپلود کرد و سایتو هک کرد.به همین سادگی به همین خوشمزگیBig Grin

    مگه باز میشه؟منظورتون .jpg هست دیگه؟
    و اینکه با این کد دیگه اون مشکل پیش نمیاد؟Idea
    ۱۳۹۳ مرداد ۲۱ ۰۵:۲۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    mo_ali_2005 آفلاین
    عضو جدید
    **

    ارسال‌ها: 38
    تاریخ عضویت: ۱۳۹۳ مرداد ۱۵
    اعتبار: 2
    تشکرها : 3
    ( 19 تشکر در 14 ارسال )
    ارسال: #5
    RE: علت استفاده از این کد در این آموزش؟!
    بحث امنیت در ارسال فایل خیلی بحث گسترده ای هست. و این مثال فقط دو موردش رو چک کرده یکی mime-type و دیگری پسوند. اگه می خوای مفصل تر بدونی یکم زبان هم بلد باشی یه سرچ بزن با عنوان file injection security که اصطلاح فایل اینجکشن یا تزریق فایل عنوان روشی هست که از آپلودر فایل برای هک سایت استفاده می کنند. اگه سایتی که می خوای بنویسی خیلی مهم باشه باید بررسی فایلت خیلی قویتر از این ها باشه....Confused
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مرداد ۲۲ ۱۱:۴۲ صبح، توسط mo_ali_2005.)
    ۱۳۹۳ مرداد ۲۲ ۱۱:۴۱ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    webnevesht آفلاین
    محمدرضا سلطانی
    ***

    ارسال‌ها: 972
    تاریخ عضویت: ۱۳۹۰ آذر ۲۵
    اعتبار: 22
    تشکرها : 384
    ( 702 تشکر در 427 ارسال )
    ارسال: #6
    RE: علت استفاده از این کد در این آموزش؟!
    (۱۳۹۳ مرداد ۲۱ ۰۵:۲۱ عصر)Mob1n نوشته شده توسط:  مگه باز میشه؟منظورتون .jpg هست دیگه؟
    و اینکه با این کد دیگه اون مشکل پیش نمیاد؟Idea

    نه پسوند فایل رو تغییر نداد.
    اومد بین سیستم خودش و سرور یه پروکسی ایجاد کرد. وقتی فرم رو Submit کرد اطلاعات فرم رو توی یک نرم افزار دید . اطلاعات کاملی که همراه فرم ارسال شده. به طور مثال MimeType فایل رو که PHP بود.
    در سمت سرور موقع آپلود فایل MimeTypeاش چک میشه که حتما تصویر باشه .
    اون اومد MimeType رو تغییر داد و فایل PHP رو به عنوان یک تصویر به سرور جا زد - پسوند رو تغییر نداد ها-

    بعد خیلی ساده و خوشمزه اومد و فایل رو چک کرد که کجا آپلود شده و راحت اجراش کرد.

    توصیه امنیتی: توی مسیرهایی که فایل آپلود میشه حتما یه فایل htaccess بزارین که جلوی اجرای فایلهای اسکریپتی مثل PHP , perl, python , CGI و ... رو بگیره.Blush
    __________________________________________________________________________
    بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
    ۱۳۹۳ مرداد ۲۲ ۰۲:۱۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Mob1n
    Reza آفلاین
    رضا شیخله
    *****

    ارسال‌ها: 3,025
    تاریخ عضویت: ۱۳۹۰ آبان ۱۶
    اعتبار: 133
    تشکرها : 2724
    ( 2716 تشکر در 1692 ارسال )
    ارسال: #7
    RE: علت استفاده از این کد در این آموزش؟!
    نقل قول: توصیه امنیتی: توی مسیرهایی که فایل آپلود میشه حتما یه فایل htaccess بزارین که جلوی اجرای فایلهای اسکریپتی مثل PHP , perl, python , CGI و ... رو بگیره
    نقل قول:
    کد:
    RemoveHandler .php .phtml .php3
    RemoveType .php .phtml .php3
    php_flag engine off
    __________________________________________________________________________
    -- - RezaWorkShop.ir - blog.RezaOnline.net
    ۱۳۹۳ مرداد ۲۵ ۰۱:۱۹ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : webnevesht
    webnevesht آفلاین
    محمدرضا سلطانی
    ***

    ارسال‌ها: 972
    تاریخ عضویت: ۱۳۹۰ آذر ۲۵
    اعتبار: 22
    تشکرها : 384
    ( 702 تشکر در 427 ارسال )
    ارسال: #8
    RE: علت استفاده از این کد در این آموزش؟!
    رضا به نظرت استفاده از این کد چطوره؟
    کد PHP:
    <Files "\.(php*|cgi|pl)$">
    deny from all
    </Files

    من اینو توی روت پوشه Images گذاشتم کلا هر نوع فایل اسکریپتی که میدی بهش Forbiden میده Big Grin
    __________________________________________________________________________
    بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مرداد ۲۵ ۰۸:۲۲ صبح، توسط webnevesht.)
    ۱۳۹۳ مرداد ۲۵ ۰۸:۲۱ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Reza
    Reza آفلاین
    رضا شیخله
    *****

    ارسال‌ها: 3,025
    تاریخ عضویت: ۱۳۹۰ آبان ۱۶
    اعتبار: 133
    تشکرها : 2724
    ( 2716 تشکر در 1692 ارسال )
    ارسال: #9
    RE: علت استفاده از این کد در این آموزش؟!
    Big Grin

    برای فایلهای آپلودی که کلا پوشه رو میبندم با http_download میفرستم واسه کاربر وقتی درخواست دانلود یک فایل رو داشت Cool
    __________________________________________________________________________
    -- - RezaWorkShop.ir - blog.RezaOnline.net
    ۱۳۹۳ مرداد ۲۵ ۰۶:۳۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

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


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