PDA

View Full Version : Safe_mode



adnan
پنج شنبه 18 آبان 1385, 21:28 عصر
در مورد safe_mode میشه توضیح بدهید که فعال یا غیرفعال کردن آن چه تاثیری می گذاره ؟

ضمنا به این لینک رجوع کنید :
http://ir.php.net/features.safe-mode

در جدول Table 42-1. Security and Safe Mode Configuration Directives

بعضی ها را نوشته قابل تغییر در PHP_INI_SYSTEM و بعضی را نوشته php.ini only !

منظورش از PHP_INI_SYSTEM اینه که میشه بشکل لوکال آنرا تغییر داد ؟

armin390
پنج شنبه 18 آبان 1385, 22:11 عصر
هدف اصلی همینه:

The PHP safe mode is an attempt to solve the shared-server security problem.
به این صورت:

When safe_mode (http://ir.php.net/manual/en/features.safe-mode.php#ini.safe-mode) is on, PHP checks to see if the owner of the current script matches the owner of the file to be operated on by a file function or its directory.
و مقداری فراز و نشیب... که البته تو همون لینک هست

PHP_INI_SYSTEM یعنی از طریق php.ini یا httpd.conf
php.ini only یعنی خودش

adnan
پنج شنبه 18 آبان 1385, 22:50 عصر
درسته !

می خواستم بدونم مثلا چه کد امنیتی ( خطرناک ) ممکنه از طریق safe_mode بسته بشه ؟

ممنون میشم با مثال توضیح دهید .

armin390
جمعه 19 آبان 1385, 09:29 صبح
مسئله سر کد امنیتی خطرناک خاصی نیست مسئله دسترسی کاربرphp هست!! هرچند safe_mode برخی توابع رو هم غیر فعال می کنه مثل shell_exec ولی این دلیل نمیشه که ازش استفاده کنیم چون با disable_functions هم میشه! این کار رو کرد! ولی رو برخی توابع هم اثر میذاره واسه هدفش (تاثیرش رو توابع کار با فایل و پوشه)
در هر صورت تو php6 دیگه جایگاهی نداره safe_mode

لیستی از توابعی که safe_mode روشون تاثیر داره
http://php.net/manual/en/features.safe-mode.functions.php

مثال از همون لینک:)
داریم:


-rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd

پس اگه این کار رو انجام بدم:


-------------------script.php
<?php
readfile('/etc/passwd');
?>

نتیجه میشه:


Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2