PDA

View Full Version : سوال: امنیت در آپلود فایل های غیر تصویری



navid3d_69
جمعه 04 مرداد 1392, 18:07 عصر
سلام برای آپلود تصاویر راه هایی هست که بشه امنیت رو بالا برد ولی می خوام ببنیم برای آپلود فایل های غیر تصویری مثلا فایل های PDF,doc,mp3,avi و ...
باید چی کار کرد؟

اینکه پسوند رو از روی فایل پیدا کنیم و اجازه آپلود رو به اون پسورند بدیم و فایل رو تغییر نام بدیم و بعد آپلود کنیم کافی هست یا باید کارهای دیگه ای هم انجام بدیم برای چک کردن؟

yones_safari
جمعه 04 مرداد 1392, 18:40 عصر
درود
از لیست سیاه استفاده کن نه سفید.منظور از لیست سیاه اینه که پسوند های غیر مجاز مثل php,htaccess,... نباشه فایل آپلود بشه در غیر اینصورت آپلود نشه.
و با استفاده از فایل htaccess اجرای فایل php رو در پوشه آپلود deny کن جهت محکم کاری.
امنیت دیگه ای نمیخواد.
موفق باشید.

SlowCode
جمعه 04 مرداد 1392, 18:52 عصر
فرقی نداره که! هدف ما اینه که هکر نتونه یه شل رو تو سایت آپلود کنه! حالا فرمتش چه jpg باشه چه avi.
شما باید هدر فایل رو بخونی بعد قبول یا ردش میکنی.
یه روش اینه(البته با php بلد نیستم ولی تحت دسکتاپ اینطوری عمل میکنیم): فایل رو به صورت باینری باز کنی و دو بایت اول رو بخونی، این دو بایت تو همه فرمت ها یکسان هستند.
مثلا واسه jpg دو بایت اول 255 و 216 هستند.
واسه png هم 137 و 80

به نظر من این بهترین راه هست.

engmmrj
جمعه 04 مرداد 1392, 19:02 عصر
فرقی نداره که! هدف ما اینه که هکر نتونه یه شل رو تو سایت آپلود کنه! حالا فرمتش چه jpg باشه چه avi.
شما باید هدر فایل رو بخونی بعد قبول یا ردش میکنی.
یه روش اینه(البته با php بلد نیستم ولی تحت دسکتاپ اینطوری عمل میکنیم): فایل رو به صورت باینری باز کنی و دو بایت اول رو بخونی، این دو بایت تو همه فرمت ها یکسان هستند.
مثلا واسه jpg دو بایت اول 255 و 216 هستند.
واسه png هم 137 و 80

به نظر من این بهترین راه هست.
http://php.net/manual/en/function.readfile.php

navid3d_69
جمعه 04 مرداد 1392, 19:16 عصر
درود
از لیست سیاه استفاده کن نه سفید.منظور از لیست سیاه اینه که پسوند های غیر مجاز مثل php,htaccess,... نباشه فایل آپلود بشه در غیر اینصورت آپلود نشه.
و با استفاده از فایل htaccess اجرای فایل php رو در پوشه آپلود deny کن جهت محکم کاری.
امنیت دیگه ای نمیخواد.
موفق باشید.

فکر کنم لیست سفید امن تر باشه چون ممکن هست در لیست سیاه یک سری پسوند ها فراموش بشه ولی من می دونم که مثلا این 20 تا پسوند رو می خوام آپلود کنم و غیز این هر چیزی بود آپلود نشه

navid3d_69
جمعه 04 مرداد 1392, 19:18 عصر
فرقی نداره که! هدف ما اینه که هکر نتونه یه شل رو تو سایت آپلود کنه! حالا فرمتش چه jpg باشه چه avi.
شما باید هدر فایل رو بخونی بعد قبول یا ردش میکنی.
یه روش اینه(البته با php بلد نیستم ولی تحت دسکتاپ اینطوری عمل میکنیم): فایل رو به صورت باینری باز کنی و دو بایت اول رو بخونی، این دو بایت تو همه فرمت ها یکسان هستند.
مثلا واسه jpg دو بایت اول 255 و 216 هستند.
واسه png هم 137 و 80

به نظر من این بهترین راه هست.

این روش به ذهن خودم هم رسید ولی چندتا جا خوندم که می شه اون mime type رو تغییر داد و ازش رد شد تصاویر رو که میشه دوباره با GD ساخت اگر پسوند هم تغییر داده باشند مشکلی نیست چون با کتابخانه GD اون رو دوباره می سازیم و مشکل امنیتی نداره ولی من برای فایل هایی بجز عکس می خوام که mime type فکر نکنم امنیت کامل رو بده