دپارتمان آموزش

معرفی زبان قدرتمند php و پیکربندی امنیت فایل php.ini

php در سال ۱۹۹۴ توسط Rasmus Lerdorf ساخته شد و اولین نسخه ی php بسیار ساده تر از آن چیزی بود که اکنون مشاهده میکنیم قبل از هر چیزی موارد زیر اطلاعات عمومی در مورد php میباشد که هر برنامه نویس php باید آنها را بداند : php مخفف کلمه ی Hypertext Preprocessor به معنی پیش پردازنده میباشد php یک زبان اسکریپتی سمت سرور میباشد که با HTML ترکیب میشود و برای مدیریت پایگاه داده ، نشست ها ، محتوا مورد استفاده قرار میگیرد php پایگاه داده های زیادی را پشتیبانی میکند از جمله : MySQL, PostgreSQL, Oracle, Sybase, Informix, و Microsoft SQL Server php یک زبان راحت و ساده ، مخصوصا برای پروژه های پیچیده میباشد وقتی که از وب سرور آپاچی و پایگاه داده MYSQL استفاده شود php یک زبان برنامه نویسی مشابه C میباشد. بر طبق آمار W3 Techs نزدیک به 81.1 درصد از وب سرورهای مستقر، در دنیا از زبان برنامه نویسی سمت سرور محبوب php استفاده می کنند.
در بخش اول این مقاله برای توسعه دهندگان و مدیران سایت ها به ارائه نکات اساسی امنیت در پیکربندی php می پردازیم.

فایل php.ini
فایل php.ini فایل پیکربندی اصلی PHP است. این فایل اجازه می دهد تا کاربر به تعریف برخی از تنظیمات برای مفسر PHP شوند. با آن شما می توانید برخی از دستورات، از قبیل”register_globals ” و فعال کردن و دسترسی به لاگ خطاها ، و یا تغییر پیش فرض پوشه آپلود برای فایل های آپلود شده از طریق یک اسکریپت پی اچ پی استفاده نمایید. تغییرات در فایل php.ini معمولا در عرض 10 تا 30 دقیقه به روز می شوند، و این عمل بستگی به تنظیمات سرور دارد.

مسیر فایل php.ini
اگر از نرم افزار xampp استفاده می کنید:
ابتدا کنترل پنل نرم افزار را باز کرده سپس بر روی دکمه config مربوط به Apache کلیک کرده و php.ini را انتخاب کنید فایل پیکربندی درnotepad باز شده که می توانید تنظیمات خود را اعمال کرده و فایل را save کنید و در انتها برای اعمال تغییرات باید apache را stop کرده و مجددا start کنید.

ایجاد تغییرات از طریق php.ini QuickConfig در Cpanel:
در صورتی که این گزینه در هاست شما موجود باشد می توانید با استفاده از آموزش زیر آن را فعال و تغییرات خود را اعمال نمایید. توجه داشته باشید این تغییرات باعث تغییر در تنظیمات پی اچ پی شما می شود.
1. ورود به cPanel.
2. برروی گزینه php.ini QuickConfig در بخش “Software/Services” کلیک کنید.
3. فعال کردن QuickConfig در صورتی که فعال نیست.
4. تنظیمات را که می خواهید تغییر دهید را تغییر دهید.
5. با کلیک بر روی دکمه Save Changes تغییرات را ذخیره کنید.

ایجاد تغییرات توسط ssh:
اگر دسترسی به ssh سرور خود داری برای پیدا کردن مسیر php.ini ابتدا وارد ssh سرور خود شوید و سپس دستور php –ini را وارد کنید. سپس بعد از Loaded Configuration File مسیر php.ini سرور شما نوشته شده است. که برای ویرایش آن می توانید دستور nano را قبل از مسیر اضافه کنید مانند nano /usr/local/lib/php.ini

حالا به مبحث تغییرات امنیتی در فایل php.ini می پردازیم:

فعال سازی Safe Mode
یکی از راه های برقرار کردن امنیت روی سرور فعال سازی Safe Mode است .البته فعال سازی این سرویس امنیتی باعث می شود که از اجرای بعضی از اسکریپت های php جلوگیری شود و به همین دلیل شاید قسمتی از سایت های رو سرور در اجرا دچار مشکل شوند پس ما به جای فعال سازی Safe Mode اقدام به فعال سازی بخش های ضروری این سرویس امنیتی می کنیم.

Manage Safe_Mode;
sql.safe_mode = On
magic_quotes_gpc = Off

تنظیم magicquotesgpc = Off برای اجتناب از نقل قول در داده GET POST و کوکی های دریافتی است.

غیرفعال کردن فانکشن ها
با غیر فعال کردن فانکشن های زیر می توان جلوی تعدادی از حملات تحت وب به خصوص حفره امنیتی RCE ، جلوی اجرای شل ، جلوی Symlink خوردن سرور و خیلی از موراد امنیتی دیگر رو گرفت.


 Disable Function;
disable_functions= symlink,curl_setopt,curl_exec,curl_init,fpassthru,crack_check,crack_closedict,crack_getlastmessage,crack_opendict,psockopen,php_ini_scanned_files,shell-exec,system,dl,ctrl_dir,phpini,tmp,safe_mode,systemroot,server_software,get_current_user,HTTP_HOST,ini_restore,popen,pclose,exec,shell_exec,

suExec,passthru,proc_open,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,

posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,escapeshellcmd,escapeshellarg,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,

posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,

posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_setegid,posix_seteuid,posix_setgid,posix_times,posix_ttyname,

posix_uname,posix_access,posix_get_last_error,posix_mknod,posix_strerror,posix_initgroups,posix_setsid,posix_setuid,perl,rsync,wget,./,

python,touch,whoami,cat,perm,find,phpinfo,php_uname

جلوگیری از حملات تحت وب
برای جلوگیری از حملات تحت وب Local File Inclution ,Remote File Inclution بستن قائده و خواستار فراخوانی از بیرون روی وب سرور است.

Disable injection code & file;
allow_url_fopen = Off
allow_url_include = Off

محدود سازی سایز ورودی
یکی از روش هایی که هکرها اقدام به نفوذ به سایت ها می کنند ، ارسال کدهای مخرب در بخش هایی از سایت که روی متد post از کاربر ورودی می گیرد و ما با محدود سازی سایز ورودی در فایل کانفیگ php از ارسال کدهای مخرب جلوگیری می کنیم.

Manage POST Method Size;
pst_max_size = 1K

محدود سازی منابع
یکی دیگر از حملاتی که به سمت سرور معمولا انجام می گیرد حملات تکذیب سرویس یا DOS است که با محدود سازی منابع در پکت های دریافتی در فایل کانفیگ php می توان در حد قابل توجهی از این حملات جلوگیری کرد.

Limited resources;
max_execution_time = 30
max_input_time = 30
memory_limit = 40M

محدود سازی آپلودر
آسیب پذیری دیگر مربوط به فایل آپلود هست که هکر از طریق این باگ این امکان رو دارد که به صورت ریموت فایل مخرب خودش را روی سایت آپلود کند. بنابراین اگر شما آپلودر در خروجی سایت دارید باید حتما محدود و مسدود کنید که هکر امکان اپلود فایل به صورت ریموت روی سایت شما رو نداشته باشد.

 

; Disable File Upload

file_uploads = Off

 

محدود کردن ورژن php
یکی از معمول ترین کارهایی که هکرها برای دسترسی به سرور می کنند به دست آوردن ورژن php سرور است که بتوانند با جستجو در خصوص آن ورژن آسیب پذیری هایی که معرفی شده است رو پیدا و از طریق آن اقدام به نفوذ کند.نفوذگر با دستور Curl در لینوکس به صورت ریموت اطلاعات نسخه php و آپاچی سرور رو بدست می آورد. ما در فایل کانفیگ php به محدود کردن این موضوع پرداختیم و هرگونه اطلاعات نسخه php را محدود کردیم.

Hiden PHP Version; 
expose_php = Off

 

نویسنده :
سعید باجلان


منبع:
آشنا ایمن

 

پویش #دو_درجه_کمتر
نمایش بیشتر

سعید باجلان

کارشناس ارشد نرم افزار وصاحب امتیاز پایگاه خبری سروش امنیت. مهارت ها: تسلط کامل به مباحث شبکه، سیسکو،هک و امنیت، مباحث مجازی سازی،بانک های اطلاعاتی فارنزیک

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit is exhausted. Please reload the CAPTCHA.

دکمه بازگشت به بالا