CSP چیست و چه کاربردی دارد ؟

CSP چیست و چه کاربردی دارد ؟

علی مرادی

Content Security Policy یا به اختصار CSP یک سیاست اعلامی است که به نویسندگان (یا ادمین های سرور) یک برنامه وب اجازه می دهد تا مرورگر مشتری را از رفتار مورد انتظار برنامه (از جمله منابع محتوا ، منابع اسکریپت ، انواع پلاگین و سایر منابع از راه دور) آگاه سازند ، که اجازه می دهد مرورگر برای اجرای دقیق تر محدودیت های امنیتی رفتار کند. یک Content Security Policy که به خوبی اعمال شده است ، در واقع بیشتر اشکالات حملات اسکریپت کراس سایت را حذف می کند.

در ادامه با ما در شتابان هاست همراه باشید تا به خوبی با CSP آشنا بشویم.

CSP چگونه کار می کند؟

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

روش کار دیگر CSP به عنوان لیست سفید منبع است. به طور معمول وقتی از یک صفحه وب درخواست می کنیم ، مرورگرهای ما به خروجی که سرور ارائه می دهد اعتماد دارند. CSP با ارسال یک سربرگ Content-Security-Policy که به برنامه اجازه می دهد لیست سفید منابع مورد اعتماد (مورد انتظار) را تعیین کند ، این مدل اعتماد را محدود می کند. هنگامی که مرورگر این هدر را دریافت کرد ، فقط محتوا را از این منابع تهیه و اجرا می کند.

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

چرا CSP را می خواهیم؟

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

Content-Security-Policy جایگزینی برای این استراتژی نیست!

آنچه Content-Security-Policy انجام می دهد ، ارائه یک استراتژی دفاع عمیق برای کاهش آسیب های ناشی از حملات تزریق محتوا است.

چند مثال از CSP:

بیایید به برخی از نمونه هایی که می توانید در Content-Security-Policy 1.1 1.1 W3C تهیه کنید نگاهی بیندازیم :

مثال ۱: سرور مایل است منابع را فقط از مبدأ خود بارگیری کند:

Content-Security-Policy: default-src 'self'

مثال ۲: یک سایت می خواهد تصاویر را از هر URI بارگیری کند ، محتوای افزونه را از لیست ارائه دهندگان رسانه قابل اعتماد (از جمله شبکه توزیع محتوا) ، و فقط از سرور تحت کنترل خود اسکریپت کند:

Content-Security-Policy: default-src 'self'; img-src *; object-src media1.example.com media2.example.com *.cdn.example.com; script-src trustedscripts.example.com

مثال ۳: سایت بانکی آنلاین می خواهد از بارگیری کلیه مطالب موجود در صفحات خود روی TLS جلوگیری کند تا از آماج حمله مهاجمان به درخواست های ناامن مطالب جلوگیری شود:

Content-Security-Policy: default-src https: 'unsafe-inline' 'unsafe-eval'

مثال ۴: وب سایتی که به عناصر اسکریپت درون خطی متکی باشد ، می خواهد اطمینان حاصل کند که این اسکریپت فقط از مبدأ خودش اجرا شده است ، و آن عناصری که عمداً درون خطی درج کرده اند:

Content-Security-Policy: script-src 'self' 'nonce-$RANDOM';

سپس عناصر اسکریپت درون خطی فقط در صورتی اجرا می شوند که دارای ویژگی غیرقابل تطبیق باشند:

<script nonce="$RANDOM">...</script>

امیدوارم این مقاله براتون مفید بوده باشه.

ما رو تو شتابان هاست دنبال کنید. 🙂

برچسب ها: خطا های وب سایت