PDA

View Full Version : سوال: چند سوال در مورد ini_set("upload_tmp_dir



idocsidocs
یک شنبه 05 تیر 1390, 13:58 عصر
من می خوام مسیر پوشه تمپ رو برای آپلود فایلهام تغییر بدم. من از کد زیر استفاده می کنم و یه پوشه به اسم newtmp کنار پوشه تمپ ایجاد می کنم.

ini_set("upload_tmp_dir", "newtmp");
در این مورد دوتا سوال دارم:

1- آیا ini_set("upload_tmp_dir" توی همه سرورها بصورت پیش فرض فعال هست یا اینکه ممکنه بعضی از سرورها این قابلت رو غیر فعال کنن؟

2- من با این روش کنار پوشه tmp یه پوشه به اسم newtmp ایجاد کردم، همونطور که می دونید توی سرورهای اشتراکی سایرین می تونن به پوشه tmp دسترسی پیدا کنن. با توجه به این مطلب، آیا این روش می تونه جلوی دسترسی سایر مدیران وب سایت ها رو به فایلهای موقت آپلود شده توی پوشه newtmp رو بگیره یا نه؟

eshpilen
یک شنبه 05 تیر 1390, 16:41 عصر
اینطور که در رفرنس PHP4 نگاه کردم امکان دسترسی به این گزینه از نوع PHP_INI_SYSTEM تعیین شده. یعنی فقط میشه در php.ini تنظیمش کرد که قاعدتا کار ادمین سرور هست. شما چطوری تنظیمش کردی؟ روی سرور اشتراکی این کار رو کردی و آیا تست کردی واقعا کار میکنه یا نه؟
شایدم در نسخه های جدیدتر PHP کاربرهای معمولی هم میتونن هرکدوم برای خودشون تنظیمش کنن.


من با این روش کنار پوشه tmp یه پوشه به اسم newtmp ایجاد کردم، همونطور که می دونید توی سرورهای اشتراکی سایرین می تونن به پوشه tmp دسترسی پیدا کنن. با توجه به این مطلب، آیا این روش می تونه جلوی دسترسی سایر مدیران وب سایت ها رو به فایلهای موقت آپلود شده توی پوشه newtmp رو بگیره یا نه؟ برای امن بودن باید پوشهء مورد نظر رو در جایی در دایرکتوری خانگی خودتون ایجاد کنید. یعنی مثلا در: /home/ali220
در جاهای دیگه بقیهء کاربران هم بسته به پیکربندی سرور میتونن بهش دسترسی داشته باشن یا نداشته باشن. این مسئله به تنظیم های مختلف و روش اجرای PHP بستگی داره (مثلا mod_php امن نیست) و اینکه پرمیشن ها رو چطور تنظیم کرده باشید. صرفنظر از این بحثها با پیچیدگی هاش که فرصت بیانش نیست، امن ترین مکان در دایرکتوری خانگی خودتونه.

idocsidocs
دوشنبه 06 تیر 1390, 00:53 صبح
اینطور که در رفرنس PHP4 نگاه کردم امکان دسترسی به این گزینه از نوع PHP_INI_SYSTEM تعیین شده. یعنی فقط میشه در php.ini تنظیمش کرد که قاعدتا کار ادمین سرور هست. شما چطوری تنظیمش کردی؟ روی سرور اشتراکی این کار رو کردی و آیا تست کردی واقعا کار میکنه یا نه؟
شایدم در نسخه های جدیدتر PHP کاربرهای معمولی هم میتونن هرکدوم برای خودشون تنظیمش کنن.
برای امن بودن باید پوشهء مورد نظر رو در جایی در دایرکتوری خانگی خودتون ایجاد کنید. یعنی مثلا در: /home/ali220
در جاهای دیگه بقیهء کاربران هم بسته به پیکربندی سرور میتونن بهش دسترسی داشته باشن یا نداشته باشن. این مسئله به تنظیم های مختلف و روش اجرای PHP بستگی داره (مثلا mod_php امن نیست) و اینکه پرمیشن ها رو چطور تنظیم کرده باشید. صرفنظر از این بحثها با پیچیدگی هاش که فرصت بیانش نیست، امن ترین مکان در دایرکتوری خانگی خودتونه.
من بحثتون در مورد نحوه اجرای پی اچ پی و هک شدن سرور رو خوندم و می دونم منظورتون چیه.

فرض کنید که سروری که استفاده می کنم این مشکل رو نداره و تیم پشتیبانی سرور فایل تمپ رو برای من تغییر داده و یه پوشه به اسم newtmp در کنار پوشه تمپ ایجاد کرده و فایلهای موقت هنگام آپلود شدن توی پوشه جدید قرار می گیرن.

آیا در این صورت سایر کاربرهای سرور اشتراکی، می تونن به این پوشه جدید دسترسی پیدا کنن و فایلهای موقت رو بدست بیارن؟

eshpilen
دوشنبه 06 تیر 1390, 18:40 عصر
آیا در این صورت سایر کاربرهای سرور اشتراکی، می تونن به این پوشه جدید دسترسی پیدا کنن و فایلهای موقت رو بدست بیارن؟
فکر نمیکنم بتونن. چون open_base_dir هم باید تنظیم شده باشه و جلوشون رو میگیره.
البته اون موردی که بنده مطرح کردم ظاهرا یک پیکربندی اشتباه سرور بوده. و طبق آماری که بدست اومد چندان هم آمارش بالا نیست.
حتی در خود tmp هم فکر میکنم امنیت متوسطی برای فایلهای آپلودی هست. چون موقعی که فایل آپلود میشه بنظرم یک اسم رندوم داره و وقتی هم از move_uploaded_file استفاده کنید فاصلهء زمانی بین موجودیت و دسترسی به فایل و انتقالش خیلی کم هست. اگر کسی بخواد در این مدت فایل رو کش بره باید مدام دایرکتوری تمپ رو تحت نظر داشته باشه و اسکن کنه یا از راه دیگه ای که بهرحال بنظرم کار راحتی نیست و ممکنه بر اثر فشار به سرور مشخص بشه.