خطای mixed content چیست و چهطور رفع میشود؟
از خدمات ویژهی CDN آروان صدور گواهی ssl رایگان است، شما میتوانید این سرویس را در پنل خود فعال کنید تا ارتباط کاربران با وبسایت شما ایمن شود. در تکمیل این فعالسازی، لازم است لینکهای وبسایت شما بهشکل Relative باشد و چنانچه لینکهایی در سایت خود دارید که Relative نیستند، ممکن است با خطای رایج Mixed Content مواجه شوید.
در این نوشته، دربارهی خطای Mixed Content و روش رفع آن، توضیح میدهیم.
Mixed Content چیست؟
خطای Mixed Content زمانی اتفاق میافتد که HTML سایت از طریق ارتباط HTTPS فراخوانی میشود، ولی برخی از محتواهای سایت مانند عکس، ویدیو یا فایلهای CSS و JS همچنان بهشکل HTTP فراخوانی و خوانده میشوند. در این حالت HTTP و HTTPS همزمان برای فراخوانی و نمایش اطلاعات یک صفحهی یکسان فراخوانده میشوند، درحالی که درخواست اولیه HTTPS بوده است.
خطای Mixed Content به دو نوع passive و active تقسیم میشود.
- نوع Passive:
وبسایت دارای خطای Mixed Content است، ظاهر سایت شما بههم نریخته ولی علامت ssl سایت شما به حالت نارنجی رنگ است و سبز نیست:
در این حالت سایت شما دارای فایلهایی مانند img, objects, video, audio است که بهشکل http فراخوانی میشود:
<audio>
<video>
<img>
<object>
- نوع Active:
در این حالت سایت شما کامل بههمریخته نمایش داده میشود و کاربران سایت پیغام خطایی شبیه زیر را دریافت میکنند:
در این حالت وبسایت شما دارای فایلهایی نظیر موارد زیر است که بهشکل http فراخوانی میشود:
- <script> → src
- <link> → href (CSS as well)
- XMLHttpRequest → object
- <iframe> → src
- CSS (@font-face, background-image,…) → url
- <object> → data
مرورگرها برای پیشگیری از حملهی MITM - Man In The Middle این محتوا را روی سایت شما بلاک میکنند که موجب بههمریختگی سایت میشود.
با دقت در inspect element در تب console میتوانید URLهایی که بهشکل http فراخوانی میشوند را ببینید.
این تصویر برگرفته از جستوجوی گوگل است
برای حل این مشکل باید نشانیهایی که بهشکل http فراخوانی شده است را پیدا و آن را در کدنویسی خود تغییر دهید.
اگر وبسایت شما با cms وردپرس طراحی شده است، میتوانید به بخش تنظیمات، سپس تنظیمات عمومی بروید و نشانی وبسایت خود را بهشکل https وارد کنید.