majid1605
جمعه 02 خرداد 1393, 00:56 صبح
چندتا سوال در مورد امنیت آپلود فایل دارم امیدوارم که به جوابشون برسم.سوالها عمومی هستند ولی بنده از ftp برای آپلود میخوام استفاده کنم.
در ضمن تووی سایت هم کلی گشتم زیاد در این مورد مطلب مفیدی پیدا نکردم
تووی یک سایت چند مورد امنیتی در مورد فایل ها گفته بود که خیلی جالب بودن بیشترشون رو متوجه نشدم دقیقا چی هستند.
1-تغییر نام تووی ftp موقع استفاده از تابع put خیلی راحت انجام میشه و مشکلی نداره اما تووی اکثر سایتها ما وقتی فایلی رو دانلود می کنیم معمولا با همون نام واقعی و یا نامی که کاربری که آپلود کرده اونو دانلود می کنیم چون اگه قراره سیستم نام فایل رو تغییر بده معمولا یک نام درهم و نامفهوم است .
2-کلا فایلهای زبانهای برنامه نویسی به خصوص php خطرناک محسوب میشن تووی سایتهایی که مخصوص مدیریت پروژه هستند و کاربر کل پروژه رو آپ میکنه روی سرور چطور امنیت این سایتها با وجود این نوع فایلها تامین میشه؟نمونه مطرح github
3-محتوای فایل تست شده است و در صورت نیاز با یک آنتی ویروس و اسکنر بررسی دقیق شده است
منظور چی محتوا بررسی بشه ؟ چطور انجام بدیم ؟ برای فایلهای تصویر از کتابخونه gd میشه فایل رو خوند و دوباره بازنویسی کرد و اگه کدی همراهش باشه به احتمال زیاد حذف میشه امام یکجا خوندم اگه کدی به صورت حرفه ایی تووی عکسی جاسازی بشه این کتابخونه نمی تونه تشخیصش بده و یا فایل های دیگه هم ظاهرا کتابخونه های اینچنینی دارند.ولی اینکار خودش کلی بار اضافی داره
4-فایلهای آپلود شده به پوشه قابل دسترسی مستقیم از طریق url منتقل نشده است
چطور دسترسی مستقیم رو بگیریم منظور همون راه ساده یک فایل index.html و یا فایل آپاچیه؟
5-فایلهای آپلود شده، include نشدهاند.
6-فایلهای آپلود شده به وسیله سرآمد (header) امن Content-Disposition سرو شدهاند (تا به عنوان فایل ضمیمه جهت دانلود ارائه شوند و تحت دامنه شما اجرا نشوند).
7-برنامه، سرآیند X-Content-Type-Options: nosniff را ارسال کرده است تا براوزر با توجه به محتوا mime_type را تعیین نکند و برخلاف میل شما آن را احتمالا اجرا کند
8-تا زمانی که ضرورتی درکار نبود، برنامه از ارسال فایل با هدرهای application/octet-stream, application/unknown, plain/text اجتناب ورزیده است.
9-دسترسی به فایلها، صرفا با مخفی کردن مسیر آنها انجام نشده است
10-فایلهای راه دور (از آدرس هاستی دیگر) اینکلود نشده است
ممنون میشم توضیح بدید اگه با مثال باشه که چه بهتر
در ضمن تووی سایت هم کلی گشتم زیاد در این مورد مطلب مفیدی پیدا نکردم
تووی یک سایت چند مورد امنیتی در مورد فایل ها گفته بود که خیلی جالب بودن بیشترشون رو متوجه نشدم دقیقا چی هستند.
1-تغییر نام تووی ftp موقع استفاده از تابع put خیلی راحت انجام میشه و مشکلی نداره اما تووی اکثر سایتها ما وقتی فایلی رو دانلود می کنیم معمولا با همون نام واقعی و یا نامی که کاربری که آپلود کرده اونو دانلود می کنیم چون اگه قراره سیستم نام فایل رو تغییر بده معمولا یک نام درهم و نامفهوم است .
2-کلا فایلهای زبانهای برنامه نویسی به خصوص php خطرناک محسوب میشن تووی سایتهایی که مخصوص مدیریت پروژه هستند و کاربر کل پروژه رو آپ میکنه روی سرور چطور امنیت این سایتها با وجود این نوع فایلها تامین میشه؟نمونه مطرح github
3-محتوای فایل تست شده است و در صورت نیاز با یک آنتی ویروس و اسکنر بررسی دقیق شده است
منظور چی محتوا بررسی بشه ؟ چطور انجام بدیم ؟ برای فایلهای تصویر از کتابخونه gd میشه فایل رو خوند و دوباره بازنویسی کرد و اگه کدی همراهش باشه به احتمال زیاد حذف میشه امام یکجا خوندم اگه کدی به صورت حرفه ایی تووی عکسی جاسازی بشه این کتابخونه نمی تونه تشخیصش بده و یا فایل های دیگه هم ظاهرا کتابخونه های اینچنینی دارند.ولی اینکار خودش کلی بار اضافی داره
4-فایلهای آپلود شده به پوشه قابل دسترسی مستقیم از طریق url منتقل نشده است
چطور دسترسی مستقیم رو بگیریم منظور همون راه ساده یک فایل index.html و یا فایل آپاچیه؟
5-فایلهای آپلود شده، include نشدهاند.
6-فایلهای آپلود شده به وسیله سرآمد (header) امن Content-Disposition سرو شدهاند (تا به عنوان فایل ضمیمه جهت دانلود ارائه شوند و تحت دامنه شما اجرا نشوند).
7-برنامه، سرآیند X-Content-Type-Options: nosniff را ارسال کرده است تا براوزر با توجه به محتوا mime_type را تعیین نکند و برخلاف میل شما آن را احتمالا اجرا کند
8-تا زمانی که ضرورتی درکار نبود، برنامه از ارسال فایل با هدرهای application/octet-stream, application/unknown, plain/text اجتناب ورزیده است.
9-دسترسی به فایلها، صرفا با مخفی کردن مسیر آنها انجام نشده است
10-فایلهای راه دور (از آدرس هاستی دیگر) اینکلود نشده است
ممنون میشم توضیح بدید اگه با مثال باشه که چه بهتر