حملات مکرر هکرها ثابت می کند که امنیت وب مهمترین مسئله برای هر کس که در اینترنت تجارت می کند ، باقی مانده است. سرورها اغلب به دلیل اطلاعاتی که ذخیره می کنند ، هدف این حملات قرار می گیرند. به همین دلیل لازم است از محافظت قابل اطمینان از سرور اطمینان حاصل کنید.
امنیت PHP در Apache
پروتکل "phpinfo ()" را شروع کرده و خط را با دستور "open_basedir" بررسی کنید. با استفاده از این دستور می توانید دایرکتوری پایه را برای همه کاربران تعریف کنید. پس از تنظیم این مقدار ، آنها دیگر نمی توانند پرونده هایی را خارج از این پوشه ریشه یا زیرشاخه های آن مانند "C: / Windows" باز کنند.
اگر فهرست های ساختاری دیگری دارید ، آنها را با دستور "www_root" به عنوان فهرست پایه تعریف کنید. با این حال ، یک کاربر همچنین قادر به خواندن و اصلاح پرونده های کاربر دیگر خواهد بود. باید جلوی این کار گرفته شود.
متأسفانه در پرونده php.ini هیچ گزینه ای برای جلوگیری از دسترسی یک کاربر به داده های دیگر وجود ندارد.
اما اگر PHP روی Apache اجرا شود یک راه جالب وجود دارد. در phpinfo () دو ستون پیدا خواهید کرد: مقدار اولیه و مقدار محلی. اولین مقدار در "php.ini" است. مورد دوم مقداری است که در هنگام راه اندازی سرور تعیین می شود.
اگر مقدار اصلی از نظر عددی کم باشد ، می توان آن را در اسکریپت با استفاده از دستور "ini_set ()" تغییر داد. این مورد در مورد "open_basedir" اعمال نمی شود زیرا این مقدار از نظر امنیتی حیاتی است و فقط توسط سرپرست قابل تغییر است.
در Apache ، پرونده پیکربندی "httpd.conf" را می توان در کتابچه راهنما با مقدار محلی "open_basedir" مشخص کرد.
سایر تنظیمات PHP
با تنظیم "disable_functions" در پرونده "php.ini" ، شما باید عملکردهایی را که به طور بالقوه خطرناک هستند غیرفعال کنید.
در مورد هر اقدامی که انجام می دهید با دقت فکر کنید. غیرفعال کردن عملکرد به این معنی است که برخی از اسکریپت ها کار نمی کنند.
برخی از ویژگی ها واقعاً خطرناک هستند و معمولاً برای برنامه نویسی مورد نیاز نیستند. موارد دیگر ممکن است برای اهداف خاص مورد نیاز باشد. بنابراین غیرفعال کردن همه عملکردهایی که ممکن است خطرناک باشد آسان نیست ، بلکه تصمیمات خود را نیز به دقت سنجید.
باور نکنید که عملکرد "safe_mode = On" به تنهایی کافی است. این ممکن است برخی از ویژگی های مفید را غیرفعال کند و ممکن است مشکل امنیتی را که در بالا توضیح داده شد حل نکند. حالت ایمن در PHP 5.3.0 منسوخ شده و در PHP 6.0.0 حذف می شود.
مسائل محافظت
چندین اشتباه وجود دارد که یک توسعه دهنده وب می تواند مرتکب شود و یک وب سایت را ناامن کند.
به عنوان مثال ، اگر وبلاگ خود را ایجاد کنید و به کاربران اجازه بارگذاری تصاویر را بدهید ، هنگام نوشتن کد توسط یک مبتدی ، این می تواند یک خطر جدی باشد. چندین اشتباه وجود دارد که یک برنامه نویس می تواند در صفحه ورود به سیستم مرتکب شود و غیره. یکی از رایج ترین آنها ممنوعیت بارگیری الگوریتم های مخرب است.
نکته مهم این است که یک سایت ناامن در میزبانی عمومی تهدیدی برای کل سرور است. همچنین نصب پروژه های منبع باز مانند PHP-Nuke می تواند خطرناک باشد. چندین آسیب پذیری در پروژه های مشابه قبلاً کشف شده است.