tmp/ مسیر نگهداری فایل های موقتی سیستم عامل و برنامه های آن می باشد ، این مسیر دارای حق دسترسی کامل برای تمامی گروه های کاربری سیستم عامل بوده و اجازه ذخیره سازی فایل های موقتی را به تمامی کاربران میدهد .
همچنین ایجاد فایل در این مسیر به سادگی و توسط تمامی کاربران امکان پذیر است .
به عنوان مثال شخص نفوذگر پس از استفاده از آسیب پذیری برنامه تحت وب یک کاربر ، موفق به آپلود قطعه کد مخربی جهت افزایش سطح دسترسی ، مشاهده لیست محتویات و امکان اجرای دستوراتی شده است . با فرض اینکه برنامه کاربر تحت نام کاربری پیش فرض وب سرور apache اجرا شده باشد ، این شخص حق مشاهده لیست و محتویات فایل ها را به آسانی در اختیار داشته ولی حق ایجاد فایل جدید و قرار دادن محتوا و یا تغییر آن را در آن فایل را در تمامی مسیر هایی که حق دسترسی آنها به درستی تنظیم و رعایت شده است را نخواهد داشت .
با توجه به این موضوع ، اولین انتخاب این فرد جهت ایجاد فایل ، مسیر tmp/ می باشد . این فرد امکان ایجاد فایل در این شاخه را به صورت پیش فرض و با توجه به ماهیت سیستم عامل دارا بوده و ایجاد فایل او بدون مشکل انجام میشود .
این عمل زمانی مشکل ساز خواهد شد که فرد نفوذگر کد های اجرایی (به انواع زبان های برنامه نویسی) خود را در قالب فایلی در این مسیر ذخیره نماید . در صورتی که شاخه tmp شما executable بوده و امکان اجرای برنامه تحت آن وجود داشته باشد ، برنامه و فایل ایجاد شده قابل فراخوانی و اجرا خواهد بود . اجرای این برنامه ها با توجه به سطح و نوع آسیب پذیری سرور شما ممکن است باعث بروز خسارت و یا در شرایطی موجب ارتقا سطح دسترسی فرد نفوذگر تا سطح کاربر root شده و سرور را کاملا و بدون محدودیت در اختیار فرد نفوذگر قرار خواهد داد.
در مورد session نیز بله ، امکان پذیر است . بنابراین توصیه میشود ایجاد session را به عنوان مثال با استفاده از قابلیت open_basedir محدود به home directory کاربر نموده و امکان ذخیره سازی session برنامه کاربران در مسیر tmp/ سرور را سلب نمایید .
در مورد سوال دیگر شما در رابطه با فایل php.ini در صورتی که policy مناسبی اتخاذ شود قابل bypass نخواهد بود . (طبیعتا امکان تغییر در تنظیمات php.ini محلی کاریران در رابطه با تنظیماتی مانند disable_functions را نمی بایست ارائه نمود ! استفاده صحیح از این قابلیت و انتخاب policy مناسب امنیت و افزایش کاربری سرور و قابلیت اعمال شخصی سازی تنظیمات php کاربر برای وی را همزمان به دنبال داشته و تماس های پشتیبانی شما را نیز کاهش خواهد داد )
بر روی سرور خود و در رابطه با تنظیمات php مواردی را به صورت غیر قابل تغییر و به صورت global اعمال کرده و امکان تغییر مواردی را به صورت local configuration برای کاربران خود فراهم نمایید.
لفظ bypass همانطور که از نام آن مشخص است تنها پس از اعمال تنظیمات و انتخاب policy ناصحیح رخ خواهد داد .