داده های روی کابل !
برای سیستم های بر مبنای وب در صورتی که اطلاعات حساس و مهمی داریم میبایست از پروتکل HTTPS استفاده نماییم. این پروتکل با رمزنگاری کردن داده ها قبل از ارسال آنها ما را مطمئن می سازد در صورتی که نفوذگری تلاش داشته باشد با تکنیکهای بوکشیدن ( sniffing ) قصد بدست آوردن بخشی از اطلاعات را داشته باشد، تلاش وی ناکام ماند.
همچنین در ارسال داده ها از طرق URL که در برنامه نویسی به آن Query String گفته میشود، باید دقت بسیاری داشته باشیم که این اطلاعات رمز نگاری شوند و یا حداقل به گونه ای نباشند که یک کاربر معمولی با نگاه کردن به آنها بتواند محتوای آن ها را درک کند و یا این که بتواند محتوا را به دلخواه خود تغییر دهد و امنیت سیستم را به مخاطره اندازد.
یک سیاست کلمه عبور قوی الزام کنید
چنانچه برنامه شما سیاستهای زیر را برای تعییم کلمات عبور اعمال کند، امنیت سیستم کمتر با مشکل دچار خواهد شد
• کلمات عبور قوی : حداقل 6 یا 8 کاراکتر که الزاما در آن از اعداد و حروف استفاده شده باشد
• محدود کردن تعداد دفعاتی که کاربر متیواند کلمه عبور اشتباده وارد کند به 3 الی 5
• الزام کاربران به تغییر کلمات عبور هر چند وقت یکبار
• در صورت وجود مشکل، پیغام های خطای حاوی جزئئیات نمایش داده نشوند. مثلا به جای عبارت "کلمه عبور غلط است" بهتر است بگوییم : "خطا در ورود به سایت"
نگاشت session کاربر به session کاربر در IIS
پس از این که session برنامه شما پس از خروج یک کاربر منقضی شد، اطمینان حاصل کنید که session مربوط به IIS نیز پاک میشود و بالعکس.
پردازشها را به موارد واقع بینانه محدود سازید
اگر برنامه شما مکانمیزمی همچون جستجو دارد که تعداد نتایج آن میتواند بسیار زیاد باشد، حتما این نتایج را به یک سقف مورد نظر محدود کنید. مثلا حداکثر تعداد نتایج هر جستجو را برابر 100 قرار دهید. این کار باعث میشود تا سرور شما به ازای یک کاربر کمتر پردازش های غیرضروری انجام دهد.
بازرسی و واقعه نگاری
هرچند این مورد کاملا واضح است اما در بسیاری از مواقع به درستی انجام نمیگردد. سعی کنید تمامی عملیات مرتبط با امنیت را بازرسی کرده و یک گزارش پایه برای مدیر سیستم جهت نظارت بفرستید. این باعث میشود که موارد مشکوک را سریعتر کشف نمایید.
همچنین خواندن موارد از کار افتادن یا رخ دادن خطاها در اثر ورودی های ناسالم کاربران به هدف فوق کمک بیشتری مینماید.
از سرریز شدن بافر برحذر باشید
اگر شما در محیطی مانند دات نت یا جاوا کار میکنید که حافظه آن مدیریت شده است، ممکن است با موردی به نام سرریز شدن بافر مواجه شوید. این مورد زمانی رخ میدهد که شما در سعی میکنید در مکانهای غیرمجاز حافظه (مثلا در خارج از محدوده آرایه ها) چیزی بنویسید.
این مشکل میتواند منجر به از دست رفتن داده های درون حافظه پردازش شما گردد و در نهایت یک ریسک امنیتی به شمار میرود.
بخش دوم – میزبان خود را امن سازید
• اطمینان حاصل کنید که تنها سرویسهای لازم بر روی هاست شما در حال اجرا میباشند و آنها از حقوق دسترسی محدودی برخودارند
• از پوشه های به اشتراک گذاشته شده محافظت کنید و اطمینان حاصل کنید که تنها بوسیله تعداد مشخصی کاربر مورد دسترسی قرار میگیرند
• به طور مکرر وصله ها (patch) و به روز آوری های لازم را برروی سیستم عامل و نرم افزار خود انجام دهید.
• نسبت به موارد پیش فرض حساس باشید. در برخی نرم افزار موارد پیش فرض به گونه ای است که میتواند از نظر امنیتی یک ریسک به شما رود. مثلا در sql server کاربر sa که مدیر سیستم است به طور پیش فرض کلمه عبوری برابر یک رشته تهی دارد.
• آنچه را که قرار نیست از آن استفاده شود متوقف سازید. سرویسهای غیر ضروری و نالازم مانند Telnet ،Indexing service و ... که به کار شما نمی آیند را متوقف کنید.
• پوشه مجازی ( virtual directory ) خود را امن سازید. سخت گیرانه ترین حقوق دسترسی را بر این پوشه اعمال کنید. مثلا برای یک پوشه مجازی که در آن فقط فایلهای html قرار دارند، فقط مجوز readonly را صادر کنید.
• این نکته را از یاد نبرید که اسکریپتهای یک صفحه وب تحت مجوزهای کاربر IUSR_MACHINENAME اجرا میشوند. بنابراین به این کاربر فقط مجوزهای لازم در مکانهای لازم را اعطا کنید.