مهم ترین نکات امنیت وبسایت

توسط hackplus
جولای 23, 2018
1 دقیقه خواندن

مهم ترین نکات امنیت وبسایت

مهم ترین نکات امنیت وبسایت

۱ – نرم افزارهای خود را همواره بروز نگه دارید !

این موضوع ممکن است به وضوح برای همگان آشکار باشد، اما تاکید آن نیز خالی از لطف نیست چرا  که به روز نگهداری تمامی نرم افزارهای مورد استفاده برای حفظ امنیت وب سایت کاملا حیاتی می باشد. این موضوع هم برای سیستم عامل سرور میزبان و هم برای نرم افزارهای مورد استفاده در وب سایت مانند CMS ها یا Forum ها صادق است. زمانی که حفره های امنیتی هرچند کوچک در یک نرم افزار پدید آیند، هکر ها به سرعت با سوء استفاده از آن ها به سرور یا سایت شما رخنه می کنند. لذا تمامی سازنده های نرم افزار در دنیا سعی می کنند تا حفره های امنیتی موجود در محصولات خود را با ارایه بسته های بروز رسانی به کاربران برطرف سازند و به مرور زمان نرم افزار خود را در مقابل نفوذهای امنیتی مقاوم تر کنند.

البته در صورتیکه از راهکارهای میزبانی مدیریت شده استفاده می کنید، نیازی به نگرانی برای بروز رسانی مداوم نرم افزارهای خود ندارید، زیرا شرکت ارایه دهنده میزبانی شما تمامی موارد امنیتی لازم را برای نگهداری از سرویس شما به کار می برد.

اگر از نرم افزارهای ثالث (Third Party) مانند CMS ها و Forum ها برای مدیریت وب سایت خود استفاده  می کنید، حتما از نصب آخرین بسته های بروز رسانی و Patch های امنیتی برای نرم افزارهای  خود اطمینان حاصل نمایید. اکثر تولید کنندگان نرم افزار دنیا دارای لیست ایمیل یا خبرنامه های RSS هستند که آخرین اخبار خود مبنی بر ارایه Patch های امنیتی را به این طریق منتشر کنند. اکثر CMS ها نیز مانند WordPress شما را از وجود نسخه های جدید در پیشخوان مدیریتی خود آگاه می سازد.

۲ – SQL Injection

حملات SQL Injection زمانی رخ می دهند که افراد هکر از پارامترهای URL با فرم تحت وب برای دسترسی به دیتابیس شما استفاده کنند. زمانی که شما از قالب استاندارد Transact SQL استفاده می کنید، افزودن کدهای مخرب و سارق در بین کدهای شما به سادگی توسط هکرها امکان پذیر خواهد بود. این افراد با افزودن چنین کدهایی می توانند جداول شما را تغییر دهند، اطلاعات دیتابیس شما را دریافت کنند و یا برخی اطلاعات حیاتی شما را حذف نمایند. اما شما به راحتی می توانید از بروز چنین اتفاقاتی با استفاده از کوئری های پارامتردار جلوگیری نمایید. اکثر زبان های برنامه نویسی وب از این قابلیت پشتیبانی نموده و انجام آن نیز به راحتی امکان پذیر می باشد.

۳ – XSS

عملیات Cross site scripting  به زمانی گفته می شود که فرد حمله کننده سعی کند تا با اضافه نمودن کدهای اسکریپت JavaScript به فرم وب، کدهای مخرب خود را برای بازدیدکنندهای وب سایت شما اجرا نماید. بنابراین در هنگام طراحی و ساخت فرمهای خود همیشه مطمئن شوید تا اطلاعات خود را به درستی کدگذاری کرده و ارسال نمایید و تا جای ممکن از ارسال کدهای ساده HTML جلوگیری نمایید.

۴- پیغام های خطا

همواره دقت کنید که پیغام های خطای وب سایت شما چه اطلاعاتی را به کاربران ارایه می دهند. برای مثال اگر در وب سایت خود از یک فرم لاگین برای ورود به قسمت مدیریت استفاده می کنید، توجه نمایید که در صورت اشتباه وارد کردن اطلاعات کاربری، پیغام های خطای ساده ای مانند “نام کاربری یارمز عبور اشتباه است” به کاربر نمایش داده شود. هرگز در پیغام های خطای خود دقیقا مشخص نکنید که چه بخشی از اطلاعات نادرست است زیرا از آن طریق،  کار را برای هکرهایی که سعی در پیدا کردن این اطلاعات دارند، بسیار آسان تر خواهید نمود. برای مثال فرض کنید هکر سعی می کند تا انجام عملیات Bruteforce نام کاربری و پسورد مدیریت سایت شما را به دست آورد. پس از چندین بار تلاش، او می تواند از پیغام خطای نمایش داده شده، متوجه شود که نام کاربری را به درستی حدس زده و تنها رمز عبور را اشتباه وارد می کند، لذا از این پس می تواند تمام تمرکز خود را برای یافتن پسورد گذاشته و در مدت زمان کوتاه تری اطلاعات محرمانه شما را به سرقت ببرد.

 

۵ – اعتبار سنجی سمت سرور و اعتبار سنجی فرم ها (Server side/Form Validation)

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

۶ – رمز های عبور

تقریبا همه می دانند که باید از پسوردهای پیچیده استفاده کنند اما متاسفانه اطلاع آن ها از این مورد به این معنا نیست که در عمل نیز همیشه آن را رعایت می کنند. انتخاب رمز های عبور پیچیده و طولانی برای قسمت های مدیریتی سرور و وب سایت، امری کاملا حیاتی است. اما همچنین باید با تمرین کاربران معمولی برای انتخاب پسوردهای مناسب نیز به حفظ امنیت حساب های کاربری آن ها کمک نمود.

پسوردهای انتخاب شده برای تمامی حساب ها باید با مقادیر کدگذاری شده در پایگاه های داده نگهداری شوند. برای مثال می توانید پسوردهای خود را الگوریتم hashing مانند SHA ذخیره نمایید. با استفاده از این الگوریتم، در هر بار که کاربر پسورد خود را برای ورود به سیستم وارد می کند، در واقع تنها مقادیر کدشده بین کاربر و سرور جابجا می شوند و ردیابی آن ها به سادگی امکان پذیر نخواهد بود. همچنین می توان برای امنیت بیشتر سیستم احراز هویت از روش Salt نمودن پسوردها نیز استفاده کرد. روش Salt در هنگام ذخیره پسورد در پایگاه داده، مقدار رشته ای تصادفی را به آن اضافه خواهد کرد و در واقع رمز عبور کاربر را با کاراکترهای دیگر ترکیب کرده و سپس آن را ذخیره می کند. با استفاده از الگوریتم کدگذاری SHA و همچنین روش Salt به صورت ترکیبی می توان، از امنیت در ذخیره پسوردها اطمینان حاصل نمود. با این روش، حتی در صورتیکه هکرها به دیتابیس شما SQL Injection نیز نمایند، بازهم قادر به دستیابی به رمزهای عبور نیستند. همچنین برای حدس زدن و یافتن چنین پسوردهای حفاظت شده ای از طریق حملات Bruteforce نیز هکر ها به زمان بسیار زیاد و تجهیزات بسیار گران قیمتی نیازمندند.

۷ – آپلود فایل ها

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

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

دیدگاهتان را بنویسید