PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال در رابطه با یک تابع



tmfar
April 1st, 2011, 16:58
سلام دوستان

می خواستم ببینم از توابع در سرور به چه دردی می خورن منظورم کاربردشون هست و فعال بودن آنها چه خطراتی را می تونه برای سرور داشته باشه

popen, proc_open, allow_url_fopen,ini_set

یه جایی هم خوندم که چهارتابع زیر یک کاربرد دارند :

ابع ها توابع زیر یک کاربرد دارند :

show_source و highlight_file
ini_alter و ini_set

و غیرفعال بودن آن مشکلاتی را برای فایل های برنامه نویسی شده توسط php بوجود میاره

---------- Post added at 03:58 PM ---------- Previous post was at 03:15 PM ----------

up

tmfar
April 6th, 2011, 14:39
دوستان راهنمایی کنند ممنون میشم

Rezash
April 6th, 2011, 15:35
popen و proc_open كه تقريبا شبيه هم هستند و اشاره گري رو باز ميكنند و ميشه دستورات مورد نظر رو execute كرد.
از يك نمونه كاربرد مثال ميشه در استفاده از برنامه هايي مثل send mail با استفاده از اين توابع اشاره كرد.
اطلاعات و مثال هاي تكميلي :
PHP: popen - Manual (http://php.net/manual/en/function.popen.php)
PHP: proc_open - Manual (http://php.net/manual/en/function.proc-open.php)
allow_url_fopen :‌
بسته بودن اين مورد اصلا جالب نيست ،‌خيلي از برنامه هاي نياز به ارتباط به داده هايي خارج از سرور دارند.
اين تابع وقتي ميتوني خطر ناك باشه كه برنامه نويس از اون به شيوه غلطي استفاده كنه.
highlight_file و show_source توابعي هستند كه بعضا برخي در ليست توابع مسدود شده قرار ميدند.
اين دو تابع سورس يك فايل پي اچ پي رو در دريافت و نمايش ميدند.كه يكي سورس رو به صورت معمولي و ديگري syntax ها رو هايلايت ميكنه.
بسته بودن اين دو تابع هم پيشنهاد نميشه .. اگر يك دسترسي خارجي براي اجراي فايل روي سرور وجود داشته باشه كه نفوذ كننده ميتونه با توابع كار با فايل هم كار اين دو تابع رو انجام بده
و اگر نفوذ داخلي به علت اشتباه برنامه نويس باشه باز هم برنامه نويس ميتونه براي نمايش سورس مورد نظرش از توابع فايل ها استفاده كنه و فقط كار برنامه نويس سخت تر ميشه
ini_alter و ini_set هم يكي هستند . تا جايي كه ديدم اين تابع رو اكثرا مسدود ميكنند و كاراييش تغيير برخي از متدهاي مجاز تنظيمات پيش فرض هست.
كه ليستشون رو ميتونيد در اينجا ببينيد :‌
PHP: List of php.ini directives - Manual (http://www.php.net/manual/en/ini.list.php)
خود تابع :‌
PHP: ini_set - Manual (http://php.net/manual/en/function.ini-set.php)
نظر شخصي :‌دقت كنيد كه هيچ كدوم از اين توابع رو نميشه يك مشكل امنيتي به حساب بياريم بلكه ميشه اسمشون رو ريسك امنيتي گذاشت ! اگر اين توابع مشكل به حساب ميومدند مطمئنا از خيلي وقت پيش حذف ميشند در نسخه هاي جديد php جايگاهي نداشتند. به عنوان مثال توابع آپلود هميشه يك ريسك امنيتي براي سرور به حساب اومده و خيلي از مشكلات رو موجب شده اما ذاتا هيچ وقت يك مشكل امنيتي خالص نبوده و بسته به نوع استفاده در برنامه و محدوديت هاي دسترسي ايجاد شده مشكل ساز شده.

boorsekala
April 11th, 2011, 10:52
allow_url_fopen که برای خواندن مسیر های اینترنتی مثل get content خطر که نداره
ini set اجازه میده برخی تنظیمات فعال و غیر فعال شده reconfig htaccess or ini setting by user اگر سایت خودته مشکل نداره اما به مشتری میدی off کن و یا همین جوری not allow باشه مشتری صداش در اومد بگو کدوم کانفیگ رو می خوای on کنی و ازش بپرس و دستی براش آن کن
در کل مواظب باش

znhost
April 11th, 2011, 11:07
ini_alter و ini_set هم يكي هستند . تا جايي كه ديدم اين تابع رو اكثرا مسدود ميكنند و كاراييش تغيير برخي از متدهاي مجاز تنظيمات پيش فرض هست.
كه ليستشون رو ميتونيد در اينجا ببينيد :‌
بستن این دو تابع مخصوصا ini_set موجب بروز مشکل در بسیاری از سیستم های مدریت محتوا بخصوص جوملا و خانوادش میشه

Rezash
April 11th, 2011, 16:32
بستن این دو تابع مخصوصا ini_set موجب بروز مشکل در بسیاری از سیستم های مدریت محتوا بخصوص جوملا و خانوادش میشه
درسته ،
+ حتي اسكريپت معروف ليچر ! كه البته در مورد اين ميشه خطش رو در index.php كامنت كرد! ولي اين هنر منيجرـه كه چطور توابع مورد نياز رو بدون مشكل باز بذاره ! متاسفانه از نظر برخي امنيت روش / خاموش كردن safe mode و اينهاست !