معرفی نکات امنیتی مهم برای برنامه PHP
زبان برنامه نویسی Hypertext PreProcessor یک زبان اسکریپتی اپن سورس و سمت سرور میباشد.زبان پی اچ پی مخصوص برنامه های تحت وب است. سمت سرور بودن به این معناست که صفحات پی اچ پی در مرحله اول باید بوسیه سرور Apache یا IIS پردازش گیرند. بعد از پردازش کدهای خروجی بصورت HTML و جاوا اسکریپت برای مرورگرها ارسال خواهد شد. به عبارت دیگر میتوان وظیفه اجرا نمودن صفحات برنامه PHP بر عهده سرور وب هاست سایت دانست.
نکات امنیتی برنامه PHP
از نکات مهم امنیتی سایت هایی که با زبان برنامه PHP (پی اچ پی ) نوشته میشوند میتوان به موارد زیر اشاره نمود. در ابتدا برای شروع کار باید به نکات اولیه توجه نمود
نکات اولیه PHP
ابتدا باید کلمات عبور قوی انتخاب شوند و رمز ها بصورت ایمن ذخیره شوند. سپس register_globals و Magic quotes غیر فعال کرده و display_errors را خاموش کنیم. در نهایت سرور ما از نظر فیزیکی امن خواهد شد.
فابل از کاربر به سرور آپلود شود
در ابتدا نوع فایل باید از نظر mime_type اعتبار سنجی شود و فقط به پسوند آن اهمیت داده نشود. همچنین باید به این نکته توجه شود یک فایل تصویری گیف با mime_type ممکن است همراه خود اطلاعات غیر متقربه داشته باشد. باید رعایت حجم مجاز فضای خالی سرور و حجم آپلودی فایل مورد بررسی قرار گیرد.ممکن است فایل آپلود شدن بصورت html باشد در اینصورت باید بصورت امن نمایش داده شود.
فایل از سرور به کاربر منتقل شود
در این حال ورودی کاربر در مسیری که فایل سرو شونده قرار دارد قرار نگرفته است و دسترسی به فایل ها با مخفی کردن مسیر آنها انجام نمیشود.همچنین فایل های دارای راه دور اینکلود نخواهد شد.
پایگاه اطلاعات
برای انکه بتوان از حملات sql injection پیشگیری کنیم داده هایی که به دیتابیس ارسال میشود از طریق روش های زیر ایمن کنیم :
- بتوان با توابع mysql_real_escape_string اسکیب شد یا بتوان از توابع مشابه در صورت استفاده از PDO یا MySQLi استفاده نمود.
- دومین روش پارامتری کردن و عدم استفاده از متغیر ها در کوئری میباشد.
- استفاده از عباراتی که از پیش آماده شده باشد.
- دسترسی و امتیازات در حد لازمی که داده میشود.
هویت سنجی
به کاربر اجازه داده نخواهد شد پسورد ضعیف انتخاب کند. همچنین برای آنکه ربات ها تشخیص داده شوند فکر موثر شده است. همچنین برای آنکه پسورد ورودی کاربران توسط دیگر اشخاص اسنیف نشود از SSL استفاده شده است. همچنین از پسورد ها در دو حالت استفاده شده است یکی ذخیره نشدن در کوکی و دیگری هش شدن بصورت امن میباشد. یکی دیگر از راه های ایمن استفاده نشدن از md5 میباشد که جایگزین آن از توابع قویتری همچون hash_hmac یا crypt با rounds استفاده خواهد شد.همچنین فرم مخصوص ریکاوری اکانت ایمیل را منتشر نخواهد کرد.
استفاده از سشن
سشن فقط از کوکی برای ذخیره نمودن خود استفاده خواهد کرد.درضورتی که logout کنیم اطلاعات سشن نابود خواهد شد.همچنین در جاهایی که سطح دسترسی تغییر پیدا میکند سشن دوباره ایجاد خواهد شد و محلی که سشن بطور پیش فرض ذخیره میشود در سرور اشتراکی عوض خواهد شد.
جزئیات برنامه و صفحات سایت
بوسیله token یا key از حملات CSRF جلوگیری کنیم. به آدرسی که به عنوان Referrer ( ارجاع ) آمده اتکا نشده است.همچنین یکی از نکات مهم استفاده از متد POST میباشد.
رعایت نکات هاست اشتراکی
از هاست اشتراکی ایمن شده در برابر دسترسی سایر مشتریان هاست به سایر فایل های یکدیگر خواهد بود. پوشه ای که به عنوان محل ذخیره برای سشن و آپلود فایل در نظر گرفته شده برای سایر مشتریان قابل دسترس نخواهد بود.