امن سازی PHP در سرور
امن سازی PHP در سرور :
برای امن سازی PHP در سرور مراحل زیر را با دقت انجام دهید و دستورات را به درستی وارد کنید.
فایل Confih php به اسم php.ini است که برای پیدا کردن این فایل از دستور زیر استفاده کنید :
php –ini
بسیاری از کاربران هستند که با گزینه هایی که در فایل php.ini و پیکربندی آن میباشد توجه نمیکنند و آشنایی ندارند.
با استفاده از گزینه های مربوط به امنیت در فایل های Config به شما این امکان را میدهد که از وضعیت امنیتی برنامه های
کاربردی وب که اجرا هستند را مشاهده و آن ها را تقویت کنید.
ویژگی Safe Mode
برای حل مشکلات امنیتی اشتراک در سرور مجازی اضافه شده و از نسخه های php 6 به بالا پاک شده.
اگر میخواهید یک فایل را در یک سرور مجازی دیگر فایل ها با مالکیت مشابه را تحت تاثیر قرار دهید برای اکتیو کردنش،
از دستور زیر استفاده کنید :
safe_mode=on
ممکن است بخواهید مالکیت استفاده از یک گروه را چک کنید، از دستور زیر کمک بگیرید :
safe_mode_gid=On
برای محدود کردن فایل های Directory که شاید فایل های اجرایی داشته باشند از دستور زیر استفاده کنید :
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
یک سری تابع های خاص هستند که شما نمیخواهید به علت خطر استفاده از آن ها، این تابع ها را گسترش دهید.
این عملکرد شما در توقف کردن مهاجم که به گونه ای موفق به upload یک اسکریپت php یا نوشتن یک فایل سیستمی و یا یک فایل php از راه دور است تاثیر داشته. دستور زیر را برای غیرفعال کردن shell_exec() یا system() وارد کنید :
disabale_functions = Disable Functios
تابع مهمی است که باید Disable شود :
status,proc_nice,proc_open,proc_terminate,set_time_limit,show_source,symlink,tmpfile,tempnam
Preventing Information Disclosure
این حمله بیشتر برای استفاده کردن از اطلاعاتی است که در وب سرور شما قابل نمایش هستند.
کسی که این اطلاعات را میخواهد یعنی اطلاعات در مورد پیکربندی سرور مجازی، طرح نرم افزار، و قطعات شما را میخواهد.
پیغام های خطا در بعضی از راه های افشا کردن اطلاعات مثل نصب برنامه، اتصال به پایگاه داده، مدل داده وجزئیات مانند table و نام column، و جزئیات اسکریپت مانند متغیر ها است که برای غیر فعال کردنش از دستور زیر باید استفاده کنید :
display_errors = off
Disable Globals
این ویژگی در نسخه های php3 به بالا هستند.
در بیشتر توزیع های ثبت نام، متغیر های جهانی برای تنظیم کردن کاربردی ندارند.
register Global به شما این امکان را میدهد تا متغیر های HTTP مختلف بدون نیاز به تعیین، منبع خود استفاده کنند.
دستور زیر را برای غیر فعال کردن آن استفاده کنید :
register_globals = off
Disable Remote File Includes
در واقع حمله، برای شناسایی آسیب پذیری و جا دادن فایل ها در Application ها و در آخر استفاده از اسکریپت های php
مخرب برای نوشتن در این فایل ها انجام میشود.
برای جلوگیری از این اتفاقات دستور زیر را وارد کنید :
allow_url_fopen = off
allow_url_include = off
Restrict File Uploads
اگر از Upload فایل در هر کدام از اسکریپت های php استفاده نمیکنید آن را خاموش کنید تا مشکلی برای شما پیش نیاید.
برای خاموش کردن آن دستور زیر را وارد کنید :
file_uploads = off
upload_temp_dir = /var/php_tmp
upload_max_filezize = 2M
Protect Sessions
محبوب ترین نوع حمله سرق میباشد.
سرقت اجازه میدهد که یک کاربر مخرب شروع به سرقت Session کند.
با استفاده از این فایل مجوز دسترسی به بخش های برنامه های کاربردی وب داشته باشد.
session.save_path = /var/lib/php
session.cookie__httponly = 1
session.referer_check = your_url.tld