جعبه شنی مرورگر

Mariko Kosaka

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

ایده «جعبه شنی»

مرورگر به عنوان یک جعبه شنی
شکل: مرورگر به عنوان یک جعبه شنی

مرورگرهای وب مدرن بر اساس ایده "جعبه شنی" ساخته شده‌اند. جعبه شنی یک مکانیزم امنیتی است که برای اجرای یک برنامه در یک محیط محدود استفاده می‌شود. درست مانند جعبه شنی فیزیکی در یک زمین بازی که بچه‌ها می‌توانند هر چیزی را که می‌خواهند در داخل مرز ایجاد کنند بدون اینکه در جای دیگری کثیف کاری کنند، کد برنامه نیز آزادی اجرا در یک محیط محدود را دارد. به عنوان مثال، جاوا اسکریپت می‌تواند عناصر را در صفحه اضافه و تغییر دهد، اما ممکن است از دسترسی به یک فایل JSON خارجی محدود شود. این به دلیل ویژگی جعبه شنی به نام same-origin است.

چرا یک جعبه شنی ضروری است؟

هر روز، کاربران وب کدهای دلخواه را دانلود می‌کنند و چندین بار آن را روی رایانه یا تلفن خود اجرا می‌کنند. اگر کسی به شما بگوید "هی! این برنامه را دانلود و اجرا کن!"، ممکن است مکث کنید و فکر کنید که آیا آن برنامه از یک منبع معتبر آمده است، در مورد فروشنده برنامه مطالعه کنید یا نظرات را با دقت بررسی کنید. وقتی کسی URL را برای شما ارسال می‌کند و می‌گوید "این پست وبلاگ را بررسی کنید" چطور؟ احتمالاً بدون پرسیدن سوالاتی مانند "این سایت چه نوع جاوا اسکریپتی را دانلود خواهد کرد؟" روی آن کلیک خواهید کرد.

سندباکس مرورگر، ویژگی کلیدی است که با ایمن‌تر کردن اجرای کد دلخواه، مرور وب را بدون مشکل می‌کند.

با طراحی، آن را ایمن کنید

اگر مرورگر هر برنامه وب را در محیط سندباکس (sandbox) قرار می‌دهد، آیا اصلاً باید به امنیت اهمیت بدهیم؟ بله، کاملاً!

اول از همه، ویژگی‌های سندباکس (sandbox) سپر کاملی نیستند. حتی اگر مهندسان مرورگر سخت تلاش کنند، مرورگرها می‌توانند آسیب‌پذیری‌هایی داشته باشند و مهاجمان همیشه سعی می‌کنند سندباکس را دور بزنند (مانند حمله Spectre ).

گاهی اوقات، سندباکس می‌تواند مانع ایجاد یک تجربه وب عالی شود. برای مثال، یک مرورگر ممکن است درخواست واکشی به تصویری که در دامنه دیگری میزبانی می‌شود را مسدود کند. شما می‌توانید با فعال کردن اشتراک‌گذاری منابع بین مبدا (CORS) منابع را در دامنه‌های مختلف به اشتراک بگذارید، اما اگر این کار با دقت انجام نشود، می‌توانید یک منبع را در معرض دید همه افراد دیگر در وب قرار دهید و اساساً سندباکس را از کار بیندازید.

جمع بندی

یک تجربه وب امن تنها در صورتی قابل دستیابی است که امنیت در طراحی برنامه شما گنجانده شده باشد و طراحی قوی با درک ویژگی‌های موجود آغاز می‌شود. دو راهنمای بعدی به طور عمیق به CORS و سیاست same-origin می‌پردازند.