تصویر(1)
دلیل اهمیت CSP چیست؟
ابزاری با نام CSP برای افزایش امنیت وب سایت وجود دارد که در جهت جلوگیری از آسیب پذیری های امنیتی می توانید از آن استفاده نمایید. در واقع، Content Security Policy یک مکانیزم امنیتی است که مستقیماً برای مرورگرها پیادهسازی می شود. وقتی یک Content Security Policy برای وب سایت شما تعریف میشود، مرورگرها هر درخواستی که توسط صفحه HTML سایت ارسال میشود را بررسی میکنند. اگر یک تصویر یا اسکریپت درخواست شده توسط صفحه HTML با قوانین CSP مطابقت نداشته باشد، مرورگر آن تصویر را دانلود نکرده و اسکریپت را اجرا نمی کند.
استفاده از CSP برای جلوگیری از packet sniffing
Packet sniffing به معنای تشخیص و مشاهده دادهها در سراسر شبکه است. از ابزار های Packet sniffing برای نظارت و اعتبارسنجی ترافیک شبکه استفاده می شود. از طریق CSP، میتوانید مرورگر کاربران خود را مجبور به رمزنگاری ارتباط با سرور کنید. برخی از مرورگرها به طور پیش فرض از HTTPS استفاده نمی کنند. CSP میتواند مرورگر کاربران را وادار به استفاده از HTTPS کند و بدین ترتیب، از حملات packet sniffing جلوگیری نماید.
CSP این امکان را به شما می دهد تا کانالهای ارتباطی مطمئنی برای اتصال به سرور خود تعریف کنید. با محدود کردن کانالهای ارتباطی به کانالهای رمزنگاری شده، میتوانید تضمین نمایید که ارتباط شما با کاربران ایمن است. اگر به مشتریان خود نشان دهید که از کانالهای ارتباطی امن استفاده میکنید، به کسب و کار شما اعتماد خواهند کرد.
نحوه راه اندازی CSP برای افزایش امنیت وب سایت
تنظیم یک سیاست امنیتی محتوا (CSP) برای وب سرور شما، بسیار آسان است. پیکربندی CSP برای وب سرور، در سه فریمورک ASP.NET MVC، Ruby on Rails و Django، به سادگی صورت خواهد گرفت. اگر در یک زبان یا فریمورک دیگری برنامه نویسی میکنید، با جستجو در گوگل، احتمالاً به سرعت یک آموزش کوتاه در مورد نحوه پیکربندی CSP برای آن زبان یا فریمورک، خواهید یافت. اگر پیکربندی CSP در زبان برنامه نویسی انتخابی پیچیده بود، میتوانید از سرورهای Apache یا Nginx استفاده کنید که نصب و پیکربندی CSP در آنها بسیار ساده است.
تصویر(2)
چالش اصلی در پیکربندی CSP برای افزایش امنیت وب سایت، احتمالاً در شناسایی و ثبت تمامی اطلاعات سایت شما می باشد. وبسایتهای مدرن شامل انواع استایل ها و اسکریپتها هستند که اغلب از منابع مختلفی به سایت اضافه میشوند و متعلق به سایت شما نیستند.
نحوه استفاده از CSP، بدون قطعی سایت
وجود خطا در تنظیم CSP، سبب قطعی سایت شده و خطرات امنیتی جدی برای کاربران به همراه خواهد داشت. این پیامدها منجر به اجتناب برخی شرکتها از پیادهسازی CSP می گردد. از آنجا که یک خطای کوچک در تنظیمات CSP می تواند باعث ایجاد اختلال در سایت گردد، برخی شرکت ها از آن استفاده نمی کنند. قطعا این تاکتیک هوشمندانه نیست. مرورگرها یک ابزار داخلی دیگر دارند که مطمئن میشوند سایت شما هنگام فعال شدن CSP، به درستی کار خود را انجام میدهد. این ابزار، Report Only directive نام دارد.
تصویر(3)
هدرهای CSP معتبر
در ادامه به بررسی متداول ترین هدرهای CSP و اینکه هر کدام چه کاری انجام می دهند، پرداخته می شود تا بتوانید یکی از این موارد را برای سایت خود انتخاب کنید.
dault-srcef: این یک هدر کلی است که نشان میدهد منابع و محتواهای یک وب سایت از کدام آدرس ها قابل دریافت هستند. علاوه بر این، هدر dault-srcef تنها برای attributes یا ویژگیهایی که مقدار خاصی برایشان تعیین نشده است، اعمال میشود.
script-src: لیستی از منابع قابل قبول برای لود اسکریپتهای سمت کاربر را مشخص میکند. تعریف صحیح این لیست، سبب افزایش امنیت برای کاربران میشود.
img-src: لیستی از منابع قابل قبول برای دریافت تصاویر را مشخص میکند.
media-src: لیستی از منابع قابل قبول برای دریافت رسانههای غنی (rich media) مانند ویدئو و صدا را مشخص مینماید.
object-src: لیستی از منابع قابل قبول برای افزونه ها را مشخص میکند.
manifest-src: لیستی از منابع قابل قبول برای Manifest های وب است. در واقع Manifest
وب توسط برنامههای پیشرفته مانند اپلیکیشن های موبایل، برای دانلود سایتها و اجرای آنها استفاده میشود.
frame-ancestors: فهرستی از URL قابل قبولی که سایت میتواند در iFrame لود کند.
plugin-types: لیست افزونه هایی که می توانند از مسیرهای موجود در object-src دریافت شوند را مشخص خواهد کرد.
base-uri: لیستی از URL هایی که می توانند در تگ های پایه HTML سایت استفاده شوند.
جمع بندی
سیاست امنیتی محتوا (CSP)، میتواند به عنوان یک نگهبان برای وب سایت شما عمل کند. CSP مناسب، محدودیتهایی بر منابعی که از سایت شما دریافت می شوند و همچنین اسکریپتهایی که میتوانند اجرا گردند، اعمال میکند. پیکربندی و حفظ یک CSP برای افزایش امنیت وب سایت ممکن است کاری نسبتاً دشوار باشد، به خصوص اگر سایت شما برای مدت طولانی آنلاین بوده یا به طور منظم تغییر میکند. پیکربندی و نگهداری یک CSP خوب، به مرور باعث افزایش اعتماد کاربران و صرفهجویی در مدت زمان رفع مشکلات امنیتی سایت خواهد شد.