بر خلاف تصوری که بسیاری از زبان PHP دارند، هنوز هم این زبان یک ابزار کارآمد برای ساخت اپلیکیشن‌های وب به شمار می‌رود. در این پست درباره‌ی نکاتی که می‌توانند به امن‌تر شدن وب‌سایت شما کمک کنند گفتگو می‌کنیم. روت وب خود را به فایل index و asset ها محدود کنید! در پی‌اچ‌پی مدرن، فایل index . php که دروازه‌ی ورود به اپلیکیشن شماست را به علاوه‌ی فایل‌های asset در روت قرار می‌دهید فایل index . php پکیج‌های Composer را لود می‌کند و پس از آن به اجرای کدهای شما برای رسیدن به نتیجه‌ی مورد نظر می‌پردازد. فایل‌های config و مواردی از این قبیل نباید در این قسمت وجود داشته باشند و تنها فایل‌های ایستا ( static ) را در این محل قرار دهید. ساختار پروژه‌ی لاراولی به همین شکل است فایل index . php در public قرار دارد و پکیج‌ها و اپلیکیشنی که توسعه‌دهنده نوشته، همگی از دایرکتوری پیش از public لود می‌شوند. نمایش خطاها را غیر فعال کنید! در php . ini می‌توان با display _ errors ، پی‌اچ‌پی را وادار کرد تا خطاهایی که در حین اجرا رخ می‌دهند را نمایش دهد. خطاهای نشان‌داده‌شده می‌توانند حاوی اطلاعات محرمانه و کویری‌های دیتابیس باشند که دیدن آنها توسط کاربران می‌تواند خطرناک باشد و امنیت وب‌سایت را تهدید کند، پس در حالت production باید غیر فعال باشند. در فایل php . ini ، به تنظیم این قابلیت به صورت زیر بپردازید: اما خطاها را از کجا بفهمیم؟ می‌توانید به شکل زیر عمل کنید: امکان تغییردادن مسیر فایل لاگ یا قراردادن آن در لاگ‌های سطح سیستم عامل نیز وجود دارد و از این پس با بررسی این فایل از خطاهای به‌وجودآمده مطلع می‌شوید. در فریم‌ورک لاراول، گزینه‌ی APP _ DEBUG در فایل env . مسیول این بخش است و اگر فعال باشد، کدهای شما هم قابل رویت هستند! از password _ hash استفاده کنید! هرگز کلمات عبور کاربران را همانطور که هستند، در دیتابیس ذخیره نکنید و در بعضی مقالات هم توصیه کرده‌اند که از md یا hash استفاده کنید، که این‌ها هم نباید استفاده شوند! در پی‌اچ‌پی از تابع password _ hash برای هش‌کردن کلمات عبور استفاده می‌کنیم: تابع password _ hash یک رشته و یک الگوریتم (که PASSWORD _ DEFAULT بهترین گزینه است) را می‌گیرد و کلمه‌ی عبور هش‌شده را برمی‌گرداند که بعدا در هنگام ورود کاربر، با فانکشن password _ verify به بررسی و تطبیق آن می‌پردازیم و آن هم یک مقدار بولی ( True یا False ) را برمی‌گرداند و به این صورت از درستی کلمه‌ی عبوری که کاربر برای یک نام کاربری وارد کرده است، مطلع می‌شوید. تمام ارتباطات را رمزگذاری کنید! در اپلیکیشن پی‌اچ‌پی شما، ارتباطاتی با دیگر سرویس‌ها وجود دارد که می‌بایست رمزگذاری شود. وقتی از curl یا soap استفاده می‌کنید، این وبسایت را فراموش نکنید تا از رمزگذاری اطلاعات رد و بدل شده مطمین باشید. همچنین اگر از FTP استفاده می‌کنید، از یک فرم مطمین مانند FTPS یا SFTP استفاده کنید. از فریم‌ورک‌های قالب استفاده کنید! همانطور که می‌دانید، کدهای PHP می‌توانند کدهای HTML را در درون خود داشته باشند، اما در حالت پیشفرض به بررسی خروجی‌ها نمی‌پردازد. اگر یکی از خروجی‌ها حاوی یک کد مخرب جاوااسکریپت باشد، در صفحه اجرا می‌شود و این می‌تواند امنیت کاربران و حتی مدیران را به خطر بیندازد! راه حل، استفاده از یک موتور قالب مانند است که به طور خودکار به بررسی و پاکسازی خروجی‌ها می‌پردازد و دیگر فراموشی شما، حادثه‌ساز نخواهد شد! لاراول از موتور قالبی به نام Blade استفاده می‌کند و دیگر نیازی به استفاده از Twig و موتورهای قالب دیگر نخواهید داشت. کد زیر نشان می‌دهد که چگونه عمل پاکسازی خروجی را انجام دهیم دهیم و چطور گاهی از آن چشم‌پوشی کنیم: پیشنهاد می‌کنم که پست را هم مطالعه کنید. آنچه خواندید، ترجمه‌ای از مقاله‌ی زیر بود: