• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
درخواست راهنمایی : امنیت در آپلود فایل و ایجاد دایرکتوری و ...
#1
سلام مجدد به دوستان عزیز

من در حال طراحی و برنامه نویسی cms ای برای سایت خودم هستم و الان تقریبا به مرحله آخر کارم رسیدم و اون طراحی بخش آپلود سایتمه که برای راهنمایی در این مورد مزاحم اساتید میشم :
-----------------------------------------------------

من در سایت خودم بنا به امکاناتی که در نظر دارم ، یک قسمت دارم که هر عضو هنگام عضویت میتونه یک عکس در سایت آپلود کنه و این عکس بنابر نیازی که هست ، باید در 5 سایز ایجاد بشه و در 5 پوشه a1 , a2, a3 , a4, a5 آپلود بشه ... من ثصد دارم برای نغییر سایز و ... عکس ها از کلاس phpthumb استفاده کنم .

و با در نظر گرفتن احتمال بالارفتن تعداد اعضای سایت ، عکس همه کاربران رو در یک پوشه قرار ندادم و بر اساس تاریخ عضویت عکس کاربران رو در 5 پوشه فوق آپلود می کنم ...

برای اینکار :

من یک تابع تعریف کردم که موقع ثبت نام کاربر ، تاریخ رو میکیره و ماه و سال تاریخ شمسی رو بر می گردونه . خروجی تابع شبیه اینه : 1387/7

من یک پوشه با نام users در نظر گرفتم که دارای 5 زیر شاخه هست . برای ذخیره عکس در 5 سایز مختلف : a1,a2,...,a5

من می خوام عکس هارو به این صورت ذخیره کنم : users/a1/$shamsidate/$user_id - با توجه به اینکه shamsidate به صورت 1387/7 هست ، محل ذهیره فایل ها مثلا میشه :

کد پی‌اچ‌پی:
users/a1/1387/7/8888
users
/a2/1387/7/8888
users
/a3/1387/7/8888
users
/a4/1387/7/8888
users
/a5/1387/7/8888 
که 8888 هم شماره کاربر در دیتابیسه .

حالا چند سوال :
1- آیا برای ریسایز کردن عکس ها و نوشتن کپی رایت روی عکس ها و ... تابع phpthumb مناسبه ؟؟؟

2- من می خوام بدونم اگه از دستور :
کد پی‌اچ‌پی:
mkdir("users/a1/1387/7/8888"0777); 
بدون مخلفات استفاده کنم درسته ؟؟؟ و یا باید برای این مرحله هم یک سری مسائل امنیتی رو در نظر گرفت ؟؟؟

3- من ناچارم پوشه users و زیر مجموعه هاش رو دسترسی 777 بدم . برای رعایت مسائل امنیتی باید چه چیزهایی رو رعایت کنم ؟؟؟

4 - خودم فقط می دونم باید نوع فایل ها رو چک کنم و ببینم عکس هست یا نه ؟؟!! لطفا اساتید راهنمایی کنید در این زمینه ...
  پاسخ
تشکر شده توسط :
#2
اگه منظورتون سیو عکس هست ، به نظرم شما باید اسم عکس ها رو در دیتابس ذخیره کنید!
فقط کافیه یه فایل (مثلا images) بسازی و موقع اپلود اونجا بریزه و اسم فایل رو به دیتابس بده!
حالا هروقت عکس رو خواستین نشون بدین از دیتابس بازیابی کنید!

درمورد نوشتن کپی رایت روی عکس ها میتونی روشون بنویسی (تابعی نداره و باید با چند تابع رو عکس بنویسی)
اگه کمکی خواستی من هستم!Wink
  پاسخ
تشکر شده توسط : troy3
#3
ممنون از راهنماییت . اما بحث کلی من اینه : تابع mkdir رو همینجوری استفاده کنم ؟؟ یا نیازمند چک کردن و ... برای جلوگیری از خطرات امنیتی هست ؟؟؟
  پاسخ
تشکر شده توسط : Alimokhlesi
#4
(۱۳۸۸ مهر ۱۷, ۱۱:۳۳ ب.ظ)troy3 نوشته: ممنون از راهنماییت . اما بحث کلی من اینه : تابع mkdir رو همینجوری استفاده کنم ؟؟ یا نیازمند چک کردن و ... برای جلوگیری از خطرات امنیتی هست ؟؟؟

تا جايی که من میدونم مشکل خاصی ایجاد نمیکنه ! و توی یکی از سورس ها که دیدم هم از همین function برای ایجاد کردن دایرکتوری استفاده کرده بود . اما بهتره با ایجاد کردن دایرکتوی یک فایل index.html هم به اون فولدر اضافه بشه تا کسی نتونه محتوای فولدر رو ببینه .
در مورد چک کردن عکس اول اکستنشن رو چک کن و كار جالب دیگه ای که میتونی بکنی این هست که یکی htaccess بریزی و از اجرای فایلی های به غیر از عکس جلوگیری کنی .

به لینک زیر به سر بزن :

http://www.mysql-apache-php.com/fileupload-security.htm
  پاسخ
تشکر شده توسط : oia troy3 admin faghani payam amir.s


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان