برای دفاع در برابر حملات، یک توسعهدهنده باید آسیبپذیریها را کاهش دهد و ویژگیهای امنیتی را به برنامه اضافه کند. خوشبختانه، در وب، مرورگر بسیاری از ویژگی های امنیتی را ارائه می دهد. برخی از آنها برای توسعهدهندگان در دسترس هستند و برخی به طور پیشفرض برای محافظت از کاربران روشن هستند.
ایده "جعبه شنی"
مرورگرهای وب مدرن بر اساس ایده "جعبه شن" ساخته شده اند. سندباکس یک مکانیسم امنیتی است که برای اجرای یک برنامه در یک محیط محدود استفاده می شود. درست مانند جعبه شنی فیزیکی در یک زمین بازی که در آن بچهها میتوانند هر چیزی را که میخواهند در محدوده ایجاد کنند، بدون ایجاد آشفتگی در جای دیگر، کد برنامه این آزادی را دارد که در یک محیط محدود اجرا شود. به عنوان مثال، جاوا اسکریپت میتواند عناصر را در صفحه اضافه و تغییر دهد، اما ممکن است دسترسی به یک فایل JSON خارجی محدود شود. این به دلیل یک ویژگی sandbox به نام همان منبع است
چرا یک جعبه شنی ضروری است؟
هر روز، کاربران وب چندین بار کد دلخواه را دانلود کرده و در رایانه یا تلفن خود اجرا می کنند. اگر کسی به شما گفت "هی! این برنامه را دانلود و اجرا کنید!"، ممکن است درنگ کنید و فکر کنید که آیا آن برنامه از منبع قابل اعتمادی تهیه شده است یا خیر، اطلاعات فروشنده برنامه را بخوانید یا نظرات را به دقت بررسی کنید. وقتی شخصی برای شما URL ارسال می کند و می گوید "این پست وبلاگ را بررسی کنید" چطور؟ احتمالاً بدون پرسیدن سؤالاتی مانند "این سایت چه نوع جاوا اسکریپتی را دانلود می کند؟" روی آن کلیک کنید.
جعبه ایمنی مرورگر ویژگی کلیدی است که با ایمنتر کردن اجرای کد دلخواه، مرور در وب را بدون اصطکاک میکند.
با طراحی آن را ایمن کنید
اگر مرورگر هر برنامه وب را سندباکس می کند، آیا باید به امنیت اهمیت دهیم؟ کاملا بله!
اول از همه، ویژگی های sandbox سپر کامل نیستند. حتی اگر مهندسان مرورگر سخت کار می کنند، مرورگرها می توانند آسیب پذیری داشته باشند و مهاجمان همیشه سعی می کنند از جعبه شنی عبور کنند (مانند Spectre Attack ).
سندباکس گاهی اوقات میتواند مانع ایجاد یک تجربه وب عالی شود. به عنوان مثال، یک مرورگر ممکن است یک درخواست واکشی برای تصویری که در دامنه دیگری میزبانی شده است را مسدود کند. میتوانید با روشن کردن اشتراکگذاری منابع متقاطع (CORS) منابع را در دامنههای مختلف به اشتراک بگذارید، اما اگر این کار با دقت انجام نشود، میتوانید یک منبع را در معرض دید همه افراد دیگر در وب قرار دهید و اساساً sandbox را لغو کنید.
بسته شدن
یک تجربه وب امن تنها در صورتی حاصل می شود که امنیت در طراحی برنامه شما ایجاد شود و طراحی قوی با درک ویژگی های موجود شروع شود. دو راهنمای بعدی به طور عمیق به سیاست CORS و همان مبدأ می پردازند.