سلام اساتید
و خسته نباشید به همه
یه سوال داشتم
توی چک کردن فایروال Csf یه قسمت قرمز رنگ مشخص شده : Check php for ini_set disabled31336
حالا سوالم اینه ، مقدار ini_set رو که توی disable_function وارد کنم دقیقا چی میشه؟ منظورم اگر وارد کتم ، میشه فایل php.ini توی لوکال ساخت یا اگر وارد کنم دیگه اجازه نمیده ساخت؟
چون این الان قرمز هست ، و من وقتی فایل php.ini رو میسازم کار نمیکنم (با اینکه قرمز هست) ، سرور من اشتراکی نیست و فقط یه سایت روشه و نمیخوام تحت هیچ شرایطی فایل php.ini داخل لوکال سرور (توی public_html ) خوانده شه
واسه امنیت بیشتر چی کار کنم؟ توی disable_function وارد کنم یا نکنم؟
یه بار دیگه اینو میگم ، من الان وارد نکردم ولی وقتی فایل php.ini میسازم ، توابع خوانده نمیشه
من میخوام فقط از داخل فایل کانفیگ اصلی سرور تغیییرات انجام شه نه از php.ini ساخته شده توی لوکال (واسه امنیت بیشتر)
iHSG
May 14th, 2016, 21:43
سلام
فایروال CSF میگه که برای امنیت بیشتر تابع ini_set رو ببندید اما خب این تابع برای اسکریپت های زیادی نیازه.
حتی اسکریپت phpMyAdmin هم نیاز به تابع ini_set داره.
در بعضی افزونه های وردپرسی هم تابع ini_set استفاده شده.
در کل آن چنان که میگن خطرناک نیست فقط به کاربر اجازه میده مقادیر فایل php.ini رو برای هاست خودش طبق میل خودش تغییر بده.
InterServer.ir
May 14th, 2016, 21:59
سلام اساتید
و خسته نباشید به همه
یه سوال داشتم
توی چک کردن فایروال Csf یه قسمت قرمز رنگ مشخص شده : Check php for ini_set disabled
31336
حالا سوالم اینه ، مقدار ini_set رو که توی disable_function وارد کنم دقیقا چی میشه؟ منظورم اگر وارد کتم ، میشه فایل php.ini توی لوکال ساخت یا اگر وارد کنم دیگه اجازه نمیده ساخت؟
چون این الان قرمز هست ، و من وقتی فایل php.ini رو میسازم کار نمیکنم (با اینکه قرمز هست) ، سرور من اشتراکی نیست و فقط یه سایت روشه و نمیخوام تحت هیچ شرایطی فایل php.ini داخل لوکال سرور (توی public_html ) خوانده شه
واسه امنیت بیشتر چی کار کنم؟ توی disable_function وارد کنم یا نکنم؟
یه بار دیگه اینو میگم ، من الان وارد نکردم ولی وقتی فایل php.ini میسازم ، توابع خوانده نمیشه
من میخوام فقط از داخل فایل کانفیگ اصلی سرور تغیییرات انجام شه نه از php.ini ساخته شده توی لوکال (واسه امنیت بیشتر)
سلام
همونطور که csf گفته از ini_set برای بایپس کردن disable_function در php.ini استفاده میشه . می توید ببندید می تونید نبندید پیشنهاد میشه برای تک سایت safe mode رو فعال کنید و بعد اینکار دیگر نیاز به غیر فعال کردن ini_set ندارید .
برای اینکه php.ini در داخل هاست و روت دامین غیر فعال بشه باید از suphp استفاده کنید و در فایل کانفیگ ; رو جلوی 3 تا خط پاک کنید . آموزشش روی اینترنت و ... هست.
Alireza_H
May 14th, 2016, 22:06
سلام
ini_set کاربردهای مختلفی داره. بهتره غیرفعال کنید، تا زمانی که لازم دارید، موقت فعال کنید. یکی از کاربردهای اون برای debug کردن هست.
davood_71
May 14th, 2016, 22:11
اهان پس مال من که غیر فعال نبود و فعال بود و با این حال نمی شد توی هاست php.ini فراخوانی شه ، مال این بود که من از suphp استفاده میکردم
خب پس من کلا این تابع رو توی disable میبندم ، حالا اگر دیدم به مشکل بخوردم ، که ظاهرا به مشکلی برنخوردم ، تابع رو باز میکنم
خیلی ممنون از همگی که جواب دادید.
iHSG
May 14th, 2016, 22:30
سلام
همونطور که csf گفته از ini_set برای بایپس کردن disable_function در php.ini استفاده میشه . می توید ببندید می تونید نبندید پیشنهاد میشه برای تک سایت safe mode رو فعال کنید و بعد اینکار دیگر نیاز به غیر فعال کردن ini_set ندارید .
برای اینکه php.ini در داخل هاست و روت دامین غیر فعال بشه باید از suphp استفاده کنید و در فایل کانفیگ ; رو جلوی 3 تا خط پاک کنید . آموزشش روی اینترنت و ... هست.
دوست عزیز ممنون از اینکه ما رو از این روش 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
من هرگز قصد اشتباه نشون دادن پست شما رو ندارم حتی تشکر هم کردم چون چیز جدید یاد گرفتم اما خواستم برای همه دوستان شفاف سازی بشه.
منابع تحقیق:
https://www.sitepoint.com/community/t/override-disable-functions-in-php-ini-with-ini-set/1628
http://stackoverflow.com/questions/19473132/php-admin-value-disable-functions-not-working
- - - Updated - - -
راستی قابلیت Safe Mode خیلی وقته از نسخه 5.4 حذف شده و دیگه هرگز ادامه داده نمیشه.
http://php.net/manual/en/features.safe-mode.php
davood_71
May 14th, 2016, 22:33
احتمالا از suphp استفاده کردید
چون واسه من هم ini_set باز هستش ولی نمیتونم توابع داخل php.ini در هاستم سفارشی کنم
---
دوستان لطفا کمکم کنید
من ini_set رو ببندم امنیت رو بالاتر میبره؟ یا اینکه ضعف امنیتی ایجاد میشه؟ کاری به این ندارم که بعضی از اسکریپت ها دچار مشکل میشن ، فطی واسه بالا بردن امنیت بعتره که توی disbale_function قرار بگیره یا نگیره
iHSG
May 14th, 2016, 22:36
احتمالا از suphp استفاده کردید
چون واسه من هم ini_set باز هستش ولی نمیتونم توابع داخل php.ini در هاستم سفارشی کنم
---
دوستان لطفا کمکم کنید
من ini_set رو ببندم امنیت رو بالاتر میبره؟ یا اینکه ضعف امنیتی ایجاد میشه؟ کاری به این ندارم که بعضی از اسکریپت ها دچار مشکل میشن ، فطی واسه بالا بردن امنیت بعتره که توی disbale_function قرار بگیره یا نگیره
نه خیر بنده از php-fpm و apache_nginx استفاده میکنم.
davood_71
May 14th, 2016, 22:50
الان من واسه امنیت بیشتر بهتر هست ini_set رو توی disbale_function قرار بدم ؟ میترسم قرار بدم ضعف امنیتی ایجاد شه ، اخه انگاری خود csf اینجوری گفته که قرار بدی کاربران میتونن php.ini سفارشی بسازن (من انگلسیم خوب نیست شاید بد ترجمه کردم)
InterServer.ir
May 15th, 2016, 03:14
دوست عزیز ممنون از اینکه ما رو از این روش 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
من هرگز قصد اشتباه نشون دادن پست شما رو ندارم حتی تشکر هم کردم چون چیز جدید یاد گرفتم اما خواستم برای همه دوستان شفاف سازی بشه.
منابع تحقیق:
https://www.sitepoint.com/community/t/override-disable-functions-in-php-ini-with-ini-set/1628
http://stackoverflow.com/questions/19473132/php-admin-value-disable-functions-not-working
- - - Updated - - -
راستی قابلیت Safe Mode خیلی وقته از نسخه 5.4 حذف شده و دیگه هرگز ادامه داده نمیشه.
http://php.net/manual/en/features.safe-mode.php
روی شل های زیادی دیدم از این دستور برای بایپس استفاده کردند ولی رو این مسئله که کار می کنه یا نه حقیقتش تحقیق نکردم و تست نکردم .
بله safe mode حذف شده ولی با تغییر نسخه php میشه از اون استفاده کرد میشه گفت امنیت بالاتری برای کسانی که زیاد به کانفیگ php وارد نیستن ایجاد می کنه. خودم هنوز از 5.3 استفاده می کنم ولی ازsafe mode حدود 3 ساله رو هاستینگم استفاده نکردم چون امنیت رو با موارد دیگر تامین کردم.
davood_71
May 15th, 2016, 09:33
روی شل های زیادی دیدم از این دستور برای بایپس استفاده کردند ولی رو این مسئله که کار می کنه یا نه حقیقتش تحقیق نکردم و تست نکردم .
بله safe mode حذف شده ولی با تغییر نسخه php میشه از اون استفاده کرد میشه گفت امنیت بالاتری برای کسانی که زیاد به کانفیگ php وارد نیستن ایجاد می کنه. خودم هنوز از 5.3 استفاده می کنم ولی ازsafe mode حدود 3 ساله رو هاستینگم استفاده نکردم چون امنیت رو با موارد دیگر تامین کردم.
یکی کمک کنه تورخدا
من ini_set رو توی disable_function قرار بدم؟ امنیت بالا تر میره یا ضعف امنیتی ایجاد میشه؟
iHSG
May 15th, 2016, 10:18
یکی کمک کنه تورخدا
من ini_set رو توی disable_function قرار بدم؟ امنیت بالا تر میره یا ضعف امنیتی ایجاد میشه؟
دوست عزیز اگر پست ها رو با دقت مطالعه کنید به نتیجه میرسید.
غیرفعال کردن تابع ini_set باعث افزایش امنیت نسبی میشه اما در بعضی اسکریپت های معروف به این تابع نیاز هست و اگر استفاده شما هاستینگ و میزبانی اشتراکی است ممکنه برای کاربر هاتون مشکلاتی پیش بیاد.
ببینید خود فایروال CSF چی گفته:
You should consider adding ini_set to the disable_functions in the PHP configuration as this setting allows PHP scripts to override global security and performance settings for PHP scripts. Adding ini_set can break PHP scripts and commenting out any use of ini_set in such scripts is advised
You should consider adding ini_set to the disable_functions in the PHP configuration: شما بهتره تابع ini_set رو به بخش disable_functions تنظیمات PHP اضافه کنید.
as this setting allows PHP scripts to override global security and performance settings for PHP scripts: چون این تابع باعث میشه بعضی تنظیمات فایل php.ini فقط برای هاست کاربر قابل تغییر باشه که ممکنه امنیت یا حتی Performance سرور رو به خطر بندازه
Adding ini_set can break PHP scripts and commenting out any use of ini_set in such scripts is advised: اما غیرفعال کردن این تابع ممکنه باعث غیرقابل استفاده شدن اسکریپت های مختلفی بشه.
در هر صورت انتخاب با شماست که این تابع رو غیرفعال کنید یا نه.
بستگی به مصرفتون از سرور هم داره مثلاً همانطور که گفتم برای مصرف هاستینگ من پیشنهاد میکنم بذارید فعال بمونه چون اغلب اسکریپت ها از این تابع استفاده میکنن.حتی شرکت های بزرگی مثل میهن وب هاست هم این تابع در سرور های اشتراکی شون فعال هست.
davood_71
May 15th, 2016, 13:11
ممنون خیلی عالی گفتید
من غیر فعالش کردم به هیچ مشکلی بر نخوردم
سرویس میزبانی هم ندارم کلا یه سایت هست روی یه وی پی اس، که غیر فعالش کردم مثل قدیم کار میکرد بدون مشکل
خیلی ممنون.