عنوان مقاله :

پیکر بندی امنیتی php.ini

گردآوری و تالیف : محمد صادق زحمتکش
تاریخ انتشار : 13 شهریور 1396
دسته بندی ها : پی اچ پی

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

فعال سازی 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 بستن قائده و خواستار فراخوانی از بیرون روی وب سرور است. 

محدود سازی سایز ورودی 

یکی از روش هایی که هکرها اقدام به نفوذ به سایت ها می کنند ، ارسال کدهای مخرب در بخش هایی از سایت که روی متد 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

 

مقالات پیشنهادی

تنظیمات فایل پیکر بندی php

قبل از شروع مطالب نگاهی اجمالی به ویژگی های فایل پیکربندی PHP (php.ini) می تواند جهت یادگیری سریعتر شما عزیزان مفید واقع شود . نام این فایل php.ini می...

ساخت یک پیکربندی جدید در لاراول

اگر شما در لاراول تازه کار هستید ممکنه که هنوز در مورد ساخت فایل های پیکربندی در پروژه لاراولی ندونید. مثل همیشه مستندات رسمی لاراول اطلاعات کاملی رو...

Task های زمان بندی شده در لاراول (هاست های اشتراکی)

در این مقاله میخواهیم به مبحث مهمی بپردازیم که احتمالا بارها بهش برخوردید و ممکنه نتونسته باشید به درستی از اون استفاده کنید. این مبحث "انجام وظایف زم...

نقش طرح بندی fluid در طراحی وب سایت های مدرن 

طراحی fluid فوق العاده سازگار است، کاربر پسند است،  در سراسر دستگاه همکاری می‌کند و یک پایه طراحی لازم برای کاربر وب مدرن است. با این حال، جالب است بد...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است