reza21biologist
November 9th, 2013, 13:17
فایل config PHP با نام php.ini می باشد و برای یافتن فایل config PHP در هر سرویس کافی است از دستور زیر استفاده نماییم:
php.ini متاسفانه بسیاری از کاربران PHP و مدیران نا آشنا با گزینه های مختلف که در فایل php.ini و فایل پیکربندی آن توجه نمیکنند. با استفاده از چند گزینه مربوط به امنیت در فایل پیکربندی شما می تواند تا حد زیادی وضعیت امنیتی از برنامه های کاربردی وب در حال اجرا بر روی سرور خود را تقویت نمایید.
Safe Mode
این ویژگی برای حل مشکل امنیت اشتراک در سرور اضافه شده است و از نسخه PHP6 به بعد حذف گردیده است.
اگر تابعی در یک فایل در یک سرور سایر فایل ها با مالکیت مشابه را تحت تاثیر قرار می دهد کنترل می نماید.
برای فعال کردن آن:
safe_mode = On
در برخی موارد شما می خواهید مالکیت استفاده از یک گروه به بررسی شود در این حالت باید:
safe_mode_gid = On
اگر شما می خواهید دایرکتوری را محدود نمایید که می تواند فایل ها و یا اجرایی داشته باشد با استفاده از فایل php.ini و دستورات زیر را به ترتیب:
safe_mode_include_dir = /path/to/dir
safe_mode_exec_dir = /path/to/exec/dir
Restricting Includes این مسیر عملگرهای فایل PHP را محدود به پوشه مشخص شده می نماید. این مورد برای جلوگیری از خطر جستجو مهاجمان برای راهی برای استفاده از فایل های محلی در اسکریپتهای PHP از طریق وب سرور می باشد.
برای فعال سازی خط زیر باید وجود داشته باشد:
open_basedir = /path/to/web/root
Disabling Functionality توابع خاص در PHP وجود دارد که شما احتمالا نمی خواهید که به دلیل خطری استفاده از آنها در برخواهد داشت توسعه دهید. این احتیاط امنیتی است موثر در متوقف کردن مهاجم که به نحوی موفق به آپلود یک اسکریپت PHP، نوشتن یک فایل سیستم، و یا حتی شامل یک فایل پی اچ پی از راه دور میباشد.
شما باید توابع خطرناک مانند shell_exec() یا system() غیر فعال نمایید:
disable_functions = Disable Functions
Preventing Information Disclosure حمله اغلب برای استفاده از اطلاعاتی که وب سرور شما در معرض نمایش قرار می دهد.
منظور به دست آوردن اطلاعات در مورد پیکربندی سرور، طرح نرم افزار، و قطعات می باشد. پیام های خطا در برخی از مسیرهای رایج ترین راه افشای اطلاعات مانند مسیر نصب برنامه، اتصال به پایگاه داده، مدل داده وجزئیات مانند table و نام column، و جزئیات اسکریپت مانند متغیر ها میباشد. برای غیر فعال کردن نمایش خطا باید:
display_errors = Off
Disable Globals Global variables در نسخه های PHP3 به بعد نیز وجود دارند. در اغلب توزیعهای ثبت نام متغیر های جهانی برای تنظیم کردن کاربدی ندارند. (و خوشبختانه آن را در نسخه های آینده از PHP پشتیبانی نمی شود).
Register globals اجازه می دهد تا متغیرهای HTTP مختلف به بدون تعیین منبع خود استفاده شوند.
برای غیر فعال کردن آن:
]php]register_globals = Off[/php]
Disable Remote File Includes حمله اغلب به تلاش برای شناسایی آسیب پذیری و گنجاندن فایل را در برنامه های کاربردی و سپس استفاده از اسکریپتهای پی اچ پی مخرب برای نوشتن در این فایل ها صورت می پذیرد. برای مانع شدن از اسکریپت های از راه دور و اجرای اسکریپت ها بر روی سیستم شما باید:
allow_url_fopen = Off
allow_url_include = Off
Restrict File Uploads اگر شما در حال استفاده از قابلیت آپلود فایل در هر یک از اسکریپت های PHP خود نیستید ایده خوبی است آن را خاموش نمایید و سرعت تزریق اسکریپت های مخرب به برنامه های کاربردی وب خود را کاهش دهید.
file_uploads = Off
upload_tmp_dir = /var/php_tmp
upload_max_filezize = 2M
Protect Sessions Session سرقت یک حمله محبوب است که اجازه می دهد تا یک کاربر مخرب به ربودن session کاربر مشروع نماید. با استفاده از جلسه ربودن یک مهاجم می تواند مجوز و دسترسی به بخشهایی از برنامه های کاربردی وب داشته باشد.
session.save_path = /var/lib/php
session.cookie_httponly = 1
session.referer_check = your_url.tld
منبع :امن سازی PHP در سرور | مدیریت سرور لینوکس و ویندوز (http://www.serversetup.ir/articles/%D8%A7%D9%85%D9%86-%D8%B3%D8%A7%D8%B2%DB%8C-php-%D8%B3%D8%B1%D9%88%D8%B1)
php.ini متاسفانه بسیاری از کاربران PHP و مدیران نا آشنا با گزینه های مختلف که در فایل php.ini و فایل پیکربندی آن توجه نمیکنند. با استفاده از چند گزینه مربوط به امنیت در فایل پیکربندی شما می تواند تا حد زیادی وضعیت امنیتی از برنامه های کاربردی وب در حال اجرا بر روی سرور خود را تقویت نمایید.
Safe Mode
این ویژگی برای حل مشکل امنیت اشتراک در سرور اضافه شده است و از نسخه PHP6 به بعد حذف گردیده است.
اگر تابعی در یک فایل در یک سرور سایر فایل ها با مالکیت مشابه را تحت تاثیر قرار می دهد کنترل می نماید.
برای فعال کردن آن:
safe_mode = On
در برخی موارد شما می خواهید مالکیت استفاده از یک گروه به بررسی شود در این حالت باید:
safe_mode_gid = On
اگر شما می خواهید دایرکتوری را محدود نمایید که می تواند فایل ها و یا اجرایی داشته باشد با استفاده از فایل php.ini و دستورات زیر را به ترتیب:
safe_mode_include_dir = /path/to/dir
safe_mode_exec_dir = /path/to/exec/dir
Restricting Includes این مسیر عملگرهای فایل PHP را محدود به پوشه مشخص شده می نماید. این مورد برای جلوگیری از خطر جستجو مهاجمان برای راهی برای استفاده از فایل های محلی در اسکریپتهای PHP از طریق وب سرور می باشد.
برای فعال سازی خط زیر باید وجود داشته باشد:
open_basedir = /path/to/web/root
Disabling Functionality توابع خاص در PHP وجود دارد که شما احتمالا نمی خواهید که به دلیل خطری استفاده از آنها در برخواهد داشت توسعه دهید. این احتیاط امنیتی است موثر در متوقف کردن مهاجم که به نحوی موفق به آپلود یک اسکریپت PHP، نوشتن یک فایل سیستم، و یا حتی شامل یک فایل پی اچ پی از راه دور میباشد.
شما باید توابع خطرناک مانند shell_exec() یا system() غیر فعال نمایید:
disable_functions = Disable Functions
Preventing Information Disclosure حمله اغلب برای استفاده از اطلاعاتی که وب سرور شما در معرض نمایش قرار می دهد.
منظور به دست آوردن اطلاعات در مورد پیکربندی سرور، طرح نرم افزار، و قطعات می باشد. پیام های خطا در برخی از مسیرهای رایج ترین راه افشای اطلاعات مانند مسیر نصب برنامه، اتصال به پایگاه داده، مدل داده وجزئیات مانند table و نام column، و جزئیات اسکریپت مانند متغیر ها میباشد. برای غیر فعال کردن نمایش خطا باید:
display_errors = Off
Disable Globals Global variables در نسخه های PHP3 به بعد نیز وجود دارند. در اغلب توزیعهای ثبت نام متغیر های جهانی برای تنظیم کردن کاربدی ندارند. (و خوشبختانه آن را در نسخه های آینده از PHP پشتیبانی نمی شود).
Register globals اجازه می دهد تا متغیرهای HTTP مختلف به بدون تعیین منبع خود استفاده شوند.
برای غیر فعال کردن آن:
]php]register_globals = Off[/php]
Disable Remote File Includes حمله اغلب به تلاش برای شناسایی آسیب پذیری و گنجاندن فایل را در برنامه های کاربردی و سپس استفاده از اسکریپتهای پی اچ پی مخرب برای نوشتن در این فایل ها صورت می پذیرد. برای مانع شدن از اسکریپت های از راه دور و اجرای اسکریپت ها بر روی سیستم شما باید:
allow_url_fopen = Off
allow_url_include = Off
Restrict File Uploads اگر شما در حال استفاده از قابلیت آپلود فایل در هر یک از اسکریپت های PHP خود نیستید ایده خوبی است آن را خاموش نمایید و سرعت تزریق اسکریپت های مخرب به برنامه های کاربردی وب خود را کاهش دهید.
file_uploads = Off
upload_tmp_dir = /var/php_tmp
upload_max_filezize = 2M
Protect Sessions Session سرقت یک حمله محبوب است که اجازه می دهد تا یک کاربر مخرب به ربودن session کاربر مشروع نماید. با استفاده از جلسه ربودن یک مهاجم می تواند مجوز و دسترسی به بخشهایی از برنامه های کاربردی وب داشته باشد.
session.save_path = /var/lib/php
session.cookie_httponly = 1
session.referer_check = your_url.tld
منبع :امن سازی PHP در سرور | مدیریت سرور لینوکس و ویندوز (http://www.serversetup.ir/articles/%D8%A7%D9%85%D9%86-%D8%B3%D8%A7%D8%B2%DB%8C-php-%D8%B3%D8%B1%D9%88%D8%B1)