Mixed Content چیست؟ چگونه می توان آن را رفع کرد؟
ارتباطات اینترنتی سالهاست که با پروتکل TLS که بیشتر با نام SSL نیز شناخته میشود، برای ایجاد تعاملی امنتر رمزگذاری شدهاند. کاربران به راحتی میتوانند سایتهای دارای این پروتکل را با دیدن https در ابتدای آدرس آنها به جای http تشخیص دهند. با این حال در برخی از مواقع یک سایت دارای https میتواند دارای عناصری باشد که با پروتکل http بارگذاری شدهاند. این شرایط، باعث ایجاد خطایی به نام Mixed Content میشود که در ادامه آن را به صورت کامل بررسی و راههای رفع این مشکل را معرفی میکنیم.
با خطای Mixed Content، کاربران تحت تاثیر گواهی SSL و بودن در یک سایت امن، توجهی به عناصر رمزگذاری شده ندارند که این موضوع میتواند باعث ایجاد آسیب پذیریهای مختلف شود. محتوای ترکیبی میتواند کاربران را در معرض فعالیتهای مخرب مانند ردیابی غیرمجاز و حملات درون مسیر قرار دهد. شدت آسیب پذیری به غیرفعال یا فعال بودن Mixed Content بستگی دارد.
انواع Mixed Content
محتوای ترکیبی به دو دسته فعال (Active) و منفعل (Passive) تقسیم میشود. همانطور که از نام این دو مشخص است، محتوای ترکیبی فعال یا همان Active Mixed Content از دسته دیگر بسیار خطرناکتر است و میتواند باعث ایجاد خطرات جدی شود.
Passive Mixed Content
در محتوای ترکیبی منفعل، محتوای رمزگذاری نشده HTTP محدود به عناصری است که توانایی تعامل مستقیم با سایر بخشهای صفحه سایت را ندارند. برای مثال میتوان به ویدیوها یا تصاویر مختلف اشاره کرد که نمیتوانند به صورت مستقیم روی سایر بخشهای صفحه سایت تاثیر بگذارند. در این نوع از Mixed Content، شخص مهاجم میتواند تصویر یا ویدیوی موجود در سایت را جایگزین یا بلاک کند اما دسترسی به سایر عناصر صفحه نخواهد داشت. با اینکه نسبت به نوع فعال، Passive Mixed Content خطر کمتری دارد، اما همچنان برای مهاجم فرصتی است تا حریم خصوصی کاربران را به خطر بیاندازد و فعالیت کاربر را ردیابی کند.
Active Mixed Content
دسته بسیار خطرناک محتوای ترکیبی، دسته فعال آن است. در این نوع از Mixed Content، بخشهایی از صفحه مانند اسکریپتها که میتوانند به صورت مستقیم بر روی سایر بخشها تاثیر بگذارند بر روی پروتکل HTTP بارگذاری شدهاند. برای مثال میتوان از کدها و فایلهای جاوا اسکریپت و درخواستهای API نام برد.
محتوای ترکیبی فعال تهدیدی بالاتر از نوع منفعل برای کاربران دارد. زمانی که این نوع از محتوا داخل سایت وجود داشته باشد، به مهاجم اجازه میدهد کنترل تمام سایت را در اختیار بگیرد، اطلاعات کاربران را به سرقت ببرد یا حتی کاربران را به سایتهای جعلی ریدایرکت کند.
از آنجایی که بسیاری از مرورگرها، خطای Mixed Content را فقط در کنسول توسعه دهنده نشان میدهند، بسیاری از کاربران از اینکه در برابر حملات آسیب پذیرند اطلاعی نخواهند داشت.
مثال عملی محتوای ترکیبی
همانگونه که تا اینجا آموختیم، این فرم از خطاها ممکن است آسیب پذیریهای بسیاری را به ارمغان بیاورند، اما در عمل چه چیزی را به ما نشان میدهند و در کدهای توسعه چگونه هستند؟ در کد زیر یک مثال از محتوای ترکیبی آورده شده است:
در مثال بالا Script یک نمونه از محتوای ترکیبی فعال است. چرا؟ چون به راحتی و به صورت مستقیم میتواند بر روی عملکرد و رفتار صفحه تاثیر بگذارد. مرورگرهای مدرن این نوع محتوا را کامل مسدود میکنند تا امنیت کاربر حفظ شود.
تگ تصویر img نیز نمونهای واضح از یک محتوای ترکیبی منفعل است. مرورگر در این مواقع فقط هشدار میدهد و از بارگذاری صفحه جلوگیری نمیکند. با این حال هنوز این منابع میتوانند حریم خصوصی کاربران را به خطر بیاندازند یا توسط مهاجم تغییر داده شوند.
رفع مشکل خطای Mixed Content
توسعه دهندگان مسئول رفع خطاهای مربوط به Mixed Content هستند. در طول زمان، مرورگرها محدودیتهای بیشتری را بر روی محتوای مخلوط اعمال کردهاند تا اطلاعات کاربر به راحتی به خطر نیفتد. بنابراین برای توسعه دهندگان ضروری است تا خطاهای مربوطه را رفع کنند تا مرورگرها وب سایت را به صورت کامل و بدون مشکل نشان دهند.
رفع خطای محتوای ترکیبی دشواری آنچنانی ندارد. کافی است توسعه دهندگان مطمئن شوند که تمام محتوا از کدها گرفته تا تصاویر و ویدیوها بر روی پروتکل HTTPS بارگذاری شوند. توسعه دهندگان میتوانند از Google Chrome developer console برای اطلاع از خطاهای Mixed content استفاده نمایند. توسعه دهندگان همچنین میتوانند کد منبع خود را برای منابع محتواهای صفحه چک کنند و از بارگذاری آنها بر روی HTTPS اطمینان حاصل نمایند.
بیشتر در مورد پروتکلها بدانید!
چرا مرورگرها تمام Mixed Content را مسدود نمیکنند؟
متاسفانه بسیاری از وب سایتها دارای محتواهای ترکیبی هستند. بدین دلیل اگر یک مرورگر تصمیم بگیرد تمام این Mixed Content را مسدود کند، ممکن است تعداد زیادی از وب سایتها به مشکل بخورند. تا زمانی که خود وب سایتها به صورت کامل مشکلات محتوای ترکیبی را حل نکنند، مرورگرها مجبورند با وب سایتها سازگارتر باشند و اجازه بدهند آنها با محتوای ترکیبی فعالیت داشته باشند.
Mixed Downloads چیست؟
دانلود ترکیبی نیز همانند محتوای ترکیبی داخل سایت میتواند باعث به خطر افتادن اطلاعات شما شود. Mixed Download دانلود منبع از یک بستر امن اما از طریق اتصالی ناامن است. این نوع از دانلود دقیقا به همان دلیلی مشکل ساز است که یک محتوای ترکیبی آسیب زننده است. محتوای این فایلها ممکن است توسط یک مهاجم رهگیری یا تغییر داده شود و تشخیص آن برای کاربر سخت خواهد بود. برای مثال کد زیر نشان دهنده یک لینک از منبعی نامعتبر و ناامن است. اگر این لینک داخل یک صفحه دارای گواهی SSL استفاده شود منجر به دانلود ترکیبی میشود..
نحوه مشاهده خطای Mixed Content در کنسول
اگر توسعه دهنده هستید میتوانید در مرورگر خود خطاهای مربوط به محتوای ترکیبی را مورد بررسی قرار دهید و آنها را رفع نمایید. Developer Console زمانی که از محتوای ترکیبی فعال و منفعل استفاده کنید به شما اخطار میدهد. تصویر زیر نشان دهنده این خطا در کنسول توسعه دهندگان است.

برای مشاهده کنسول در مرورگر نیاز است ابتدا وارد مرورگر خود شده و کلید F12 را فشار دهید تا پنجره Developer Tools باز شود. پس از این کار، به تب Console بروید و به دنبال خطاهایی مانند خطای تصویر بالا بگردید. با بررسی این کنسول میتوانید تمام منابع HTTP موجود در سایت خود را شناسایی کنید و برای رفع خطا، آنها را به HTTPS تغییر دهید.
نتیجه گیری
در نهایت، Mixed Content خطای رایجی است که میتواند بدون اطلاع کاربران باعث ایجاد آسیب پذیریهای مختلف شود. با اطلاع از نکات مختلف امنیتی و استفاده از منابع سالم و امن میتوان این خطای مهم را به راحتی رفع کرد.
سوالات متداول
بله، گوگل محتوای مشکوک و ناامن وبسایتها را مسدود میکند. همچنین خطای محتوای ترکیبی ممکن است از ایندکس شدن صفحه توسط گوگل جلوگیری کند.
در نوع Active، عناصری که به صورت مستقیم میتوانند روی باقی سایت تاثیر بگذارند بر روی پروتکل HTTP بارگذاری شدهاند و میتوانند مشکلات بسیاری به وجود بیاورند، در نقطه مقابل و در نوع Passive عناصری که توانایی تعامل مستقیم با سایر بخشها ندارند مانند تصاویر و ویدیوها آسیب پذیر هستند.
منابع
- https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content
- https://www.cloudflare.com/learning/ssl/what-is-mixed-content/
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!


اولین دیدگاه را اضافه کنید.