موارد امنیتی در طراحی وب سایت

از مهمترین مسائل در طراحی هر وب سایت ، امنیت آن است ، امنیت از این جهت از اهمیت بالایی برخوردار است که امروزه بیشتر کاربران تمایل دارند که با ما از طریق وب سایت در ارتباط باشند و هرگز نمی پسندند که حتی بخشی از اطلاعات که با وب سایت تبادل کردند به دست هکر های وب سایت بیفتد و حتی اگر هم اطلاعاتی در وب سایت درج نکردند دگر کاربران اطمینان نخواهد کرد در صورتی که ببیند وب سایت شرکت هک شده یا اطلاعات ان در اینترنت به اشتراک گذاشته شده باشد


حال برای اینکه حداقل درصد نفوذ به سایتی که ما طراحی کردیم را کم کنیم موارد زیر را متوانیم چک کنیم

استفاده از سیستم تشخیص هویت قوی :


از یک سیستم امنیت و تشخیص هویتی قوی استفاده کنید و در صورت امکان از روشهایی که خودتان اختراع :) می کنید اسشتفاده نکنید

تنظیم CustomErrors

: توسعه دهندگان Asp.NET به خوبی با این تگ آشنا هستند ، در هنگام بروز یک خطا برای نمایش متن کامل خطا نیاز است که این مقدار برابر Off ست شود ، دقت نمایید که پس از نهایی شدن وب سایت و بارگزاری آن این مقدار دیگر نباید Off باشد بلکه باید به On یا RemoteOnly تغییر یابد چرا که بازدیدکنندگان نباید متن خطاهای شما را ملاحظه کنند . برای php هم این امکان وجود دارد و همچنین دیگر زبان های برنامه نویسی وب

خاصیت Debug تگ Compilation

حتما وب سایت خودتان را ریلیز کنید و بعد منتشر کنید

لاگ رویداد ها و مدیریت خطاها

این کار علاوه بر اینکه شما را از اتفاقاتی که در وب سایت شما رخ میدهد مطلع می کند می تواند هشداری باشد جهت جلوگیری از نفوذهکر سعی کنید هر چند وقت یکبار یک نگاهی به لاگ رویداد ها هم بیاندازید تا اگر مورد مشکوکی بود آن را پیگیری نمایید . همچنین اگر کنترل پنل هاست شما دارای سیستم لاگ گیری است (مثلا کنترل پنل Plesk) حتما هر هفته یک نگاهی به آن بیاندازید ، تمامی موارد مشکوک در آن هشدار داده خواهد شد .

اس کیو ال سرور (SQL Server)
اگر از SQL Server استفاده می کنید و قصد بارگزاری دیتابیس را بر روی هاست یا یک سرور اختصاصی دارید به چند نکته زیر دقت کنید :
1. به User های بانک خود دقت کنید و اطمینان پیدا کنید که Guest User یا کاربر اضافی دیگری داخل آن نباشد ، چرا که کاربران دیگر SQL Server می توانند از این طریق به بانک شما دسترسی داشته باشند
2. اگر سرور اختصاصی دارید حتما برای کاربر SA یک پسورد مناسب قرار دهید ، همچنین Event Log مربوط به SQL را مطالعه نمایید تا اگر مورد مشکوکی بود IP آن را Block نمایید .

جلوگیری از حملات تزریق دستورات اس کیو ال (SQL Injection)
یکی از رایج ترین روش های نفوذ به وب سایت ها و هک کردن آن ها SQL Injection نام دارد ، توسط این روش هکر با وارد کردن جملات SQL در فرم های وب یا QueryString ها Query شما را به نفع خود تغییر خواهد داد .

جلوگیری از حملات XSS
میتوان گفت که خطرساز ترین حمله به یک وب سایت می باشد ، این روش که مخفف Cross-site Scripting است توسط این روش هکر اسکریپت های سمت کلاینت را به صفحات شما تزریق می نماید و از این طریق اطلاعات مورد نیاز خود را واکشی می کند . این حملات معمولا توسط فرم ها و QueryString ها صورت می گیرد

کنترل FileUpload 

یکی از خطر ساز ترین کنترل های Asp.NET این کنترل می باشد دلیل آن هم این است که کاربر می تواند از طریق این کنترل فایل خود را وارد سرور نماید ، اجازه بدهید با یک مثال موضوع را روشن تر کنم ، فرض کنید شما یک وب سایت طراحی کرده اید و در آن یک بخش برای عضویت قرار داده اید . کاربران میتوانند در هنگام عضویت عکس خود را بارگزاری نمایند ، شما عکس ها را در پوشه pics ذخیره می کنید و آن را به کاربران نمایش می دهید .ا کنون کار هکر شروع می شود به سادگی به جای اینکه یک عکس آپلود کند یک صفحه aspx ایجاد کرده و آن را آپلود می نماید ، این صفحه aspx میتواند شامل کد هایی باشد که تمامی اطلاعات Web.Config شما را به او نشان دهد و یا او را به سورس فایل های شما برساند و....

ویرایشگر ها (HTML Editor) : اگر شما هم یکی از کاربران ویرایشگر ها (مانند FckEditor ، HtmlErea , TinyMce , FreeTextBox و...) هستید به امکاناتی که در اختیار کاربر قرار می دهید دقت کنید ، هیچ گاه به اجازه ویرایش سورس Html را به کاربران ندهید ، البته مدیران سایت میتوانند از این امکان استفاده کنند ولی کاربران و بازدیدکنندگان در صورتی که به سورس Html دسترسی داشته باشند قادرند کد هایی را وارد کنند که به سایت شما صدمه بزند ، همچنین در مورد امکانات بارگزاری عکس و فایل و... بازهم به پسوند ها دقت نمایید .

اعتبار سنجی ViewState ها

: تا کنون در مورد ViewState ها صحبت های زیادی کرده ام ، همانطور که مستحضر هستید حالت ماندگاری کنترل های سمت سرور در هنگام Postback شدن صفحه را ViewState برقرار می نماید ، لازم به ذکر است که یک هکر می تواند با تغییر مقادیر ViewState ها به وب سایت شما نفوذ کند . دات نت به صورت پیشفرض برای جلوگیری از این موضوع ViewState ها را رمز نگاری کرده و اعتبار سنجی می کند تا از تغییر نکردن آنها مطمئن شود البته شما میتوانید با false کردن خاصیت EnableViewstateMac در تگ Pages در Web.Config یا CodePage صحفحه آن را غیر فعال کنید ، که به هیچ وجه این کار پیشنهاد نمی شود . به کرار پیش آمده که به دلیل دریافت خطاهای نا معلومی برنامه نویسان به اشتباه این خاصیت را false کرده اند ، پیشهاد بنده این است که آخرین Hotfix های مایکروسافت را بر روی سرور نصب کنید (یا از مدیران هاست بخواهید این کار را انجام دهند) تا خطاهایی که به صورت باگ گزارش شده اند برطرف گردند .

رمز نگاری اطلاعات (Encryption)

: شما میتوانید برای رد بدل کردن اطلاعاتی که مایلید از دید کاربر دور بماند آن ها را رمز نگاری کنید ، الگوریتم هایی مانند Des و Triple Des برای رمز نگاری مناسب هستند (مثلا برای رمز نگاری شماره کارت اعتباری و رمز آن و...)

هش کردن اطلاعات مهم (Hashing)

: شما می توانید اطلاعات مهم مانند رمز عبور. را به وسیله الگوریتم هایی مانند MD5 یا SHA1 و... Hash نمایید ، دقت کنید که اطلاعات Hash شده قابل بازگشت نیستند

به رمز درآوردن رشته اتصال (Encrypt Connectionstring)

: به رمز درآوردن رشته اتصال که در وب کانفیگ قرار گرفته از واجبات مسائل امنیتی نیست دلیل آن هم این است که فقط کسانی به این فایل دسترسی دارند که به Ftp اکانت شما دسترسی دارند اما اگر از نفوذ هکرها به Ftp (مثلا از روش FileUpload) نگران هستید یا بانک اطلاعاتی شما در سرور دیگری قرار دارد میتوانید این کار را انجام دهید .

تصاویر امنیتی (Verification Images)

: هدف اصلی استفاده از تصاویر امنیتی جلوگیری از حجوم ربات ها است ، این تصاویر در فرم های Login ، فرم های نظرسنجی ، فرم های نظردهی (مثلا در مورد وبلاگ) و ... بسیار کاربرد دارند ، یک ربات می تواند به سادگی فرم ها را پر کرده و سمت سرور پست نماید ، همچنین قادر است داخل وب سایت لاگین کرده و به جمع آوری اطلاعات بپردازد یا با کاربران سایت ارتباط برقرار نماید (بنده شخصا چندین ربات برای سایت های مختلف از قبل Yahoo 360 , سایت Cloob و سایت های اطلاع رسانی و... ساخته ام که به راحتی اطلاعات را از آن ها استخراج نموده و با کاربران آنها ارتباط برقرار کرده است)

به هر دلیلی اگر نیاز به مشاوره و یا دنبال طراحی وب سایت امنیتی می گردید حتما با ما تماس بگیرید


 طراحی وب سایت   تیم هک سایت های ایرانی   شرکت   امنیت در وب سرور   درباره ما   امنیت سایت درتبریز   هک کردن سایت های ایران   مدیریت امنیت   برنامه نویسان   استخدام