دوست عزیز ممنون از اینکه ما رو از این روش ByPass که میگید با خبر کردید اما بنده تحقیق کردم فهمیدم php به صورت پیش فرض برای هر مقدارش در فایل php.ini سطح دسترسی با یکی از مقادیر زیر داره:
PHP_INI_USER مقداری که قابل تغییر توسط یوزر است.
PHP_INI_PERDIR = مقداری که قابل تغییر در php.ini و htaccess. و httpd.conf است.
PHP_INI_SYSTEM = مقداری که فقط از طریق php.ini یا httpd.conf قابل تغییر است.
PHP_INI_ALL = مقداری که از همه طریق قابل تغییر است.
که سطح دسترسی مقدار disable_functions به صورت پیش فرض روی PHP_INI_SYSTEM است و فقط از طریق سیستم قابل تغییر است نه از طریق یوزر و تابع ini_set.
حتی تست هم کردم من تابع ini_set در سرورم باز است خواستم با کد زیر مقدار disable_functions رو ByPass کنم و تابع system رو اجرا کنم اما همچنان با اخطار بسته بودن تابع system مواجه شدم:
Warning: system() has been disabled for security reasons
کد:
<?php
ini_set('disable_functions', '');
system('ls', $retval);
من هرگز قصد اشتباه نشون دادن پست شما رو ندارم حتی تشکر هم کردم چون چیز جدید یاد گرفتم اما خواستم برای همه دوستان شفاف سازی بشه.
منابع تحقیق:
https://www.sitepoint.com/community/...h-ini-set/1628
http://stackoverflow.com/questions/1...ns-not-working
- - - Updated - - -
راستی قابلیت Safe Mode خیلی وقته از نسخه 5.4 حذف شده و دیگه هرگز ادامه داده نمیشه.
http://php.net/manual/en/features.safe-mode.php