خطای Mixed Content زمانی رخ میدهد که یک وبسایت از HTTPS (پروتکل امن SSL) برای بارگذاری استفاده میکند، اما برخی از منابع آن مانند تصاویر، اسکریپتها، یا فایلهای CSS از طریق HTTP (پروتکل غیر امن) بارگذاری میشوند. این مشکل زمانی ایجاد میشود که بخشی از محتوای سایت از طریق یک اتصال ناامن در دسترس است و میتواند امنیت کلی سایت را به خطر بیندازد. مرورگرهای مدرن برای جلوگیری از دسترسی به منابع غیرامن، معمولاً هشدارهایی نمایش میدهند یا محتوای ناامن را مسدود میکنند.Mixed Content دو نوع دارد: فعال و غیرفعال. محتوای فعال به کدهایی اشاره دارد که مستقیماً بر روی صفحه تأثیر میگذارند، مانند اسکریپتها یا فایلهای CSS، و اگر از طریق HTTP بارگذاری شوند، مرورگر ممکن است این محتوا را بهکلی مسدود کند. محتوای غیرفعال شامل عناصری مانند تصاویر یا ویدئوها است که تأثیری بر امنیت اصلی صفحه ندارند، اما همچنان مرورگر هشدارهایی در این خصوص نشان میدهد. رفع این خطا به معنای اطمینان از بارگذاری تمامی منابع از طریق HTTPS است.
روش تشخیص خطای Mixed Content
ابتدا باید خطای Mixed Content را شناسایی کنیم. برای این کار مراحل زیر را دنبال کنید:
۱.۱ استفاده از ابزار Developer Tools مرورگر
- در مرورگر Google Chrome، روی صفحه راست کلیک کرده و گزینه Inspect را انتخاب کنید.
- به تب Console بروید. در این بخش تمام خطاهای Mixed Content نمایش داده میشوند.
۲. استفاده از افزونه Really Simple SSL برای رفع خطای Mixed Content
۲.۱ نصب افزونه Really Simple SSL
- به پنل مدیریت وردپرس بروید.
- در منوی سمت چپ، گزینه افزونهها را انتخاب کرده و سپس روی افزودن کلیک کنید.
- در نوار جستجو، عبارت “Really Simple SSL” را وارد کرده و سپس افزونه را نصب و فعال کنید.
۲.۲ تنظیمات افزونه Really Simple SSL
- پس از فعالسازی افزونه، پیغامی برای فعالسازی SSL در سایت نمایش داده میشود. روی Go ahead, activate SSL! کلیک کنید.
- افزونه بهطور خودکار لینکهای HTTP را به HTTPS تغییر میدهد و مشکل Mixed Content را برطرف میکند.
۳. بروزرسانی لینکهای قدیمی به HTTPS در پایگاه داده
۳.۱ استفاده از افزونه Better Search Replace
گاهی اوقات افزونهها نمیتوانند تمام لینکهای HTTP را به HTTPS تغییر دهند. در این حالت، باید از افزونهای مانند Better Search Replace استفاده کنیم.
- به پنل مدیریت وردپرس بروید و افزونه Better Search Replace را نصب و فعال کنید.
- به بخش ابزارها -> Better Search Replace بروید.
- در فیلد Search for، آدرس سایت خود با پیشوند “http://” را وارد کنید و در فیلد Replace with، آدرس سایت خود با پیشوند “https://” را وارد کنید.
۳.۲ اجرای جایگزینی
- تیک گزینه Run as dry run را بزنید تا ابتدا بررسی کنید که چه تعداد از لینکها تغییر خواهند کرد. سپس در صورت رضایت، دوباره اجرا کنید و تیک این گزینه را بردارید تا تغییرات اعمال شوند.
۴. رفع دستی لینکهای Mixed Content در قالب و افزونهها
اگر افزونهها نتوانستند تمام لینکها را به HTTPS تغییر دهند، ممکن است لازم باشد لینکهای مربوط به قالب یا افزونهها را بهصورت دستی تغییر دهید.
۴.۱ ویرایش فایلهای قالب
- به پنل مدیریت وردپرس بروید و به بخش نمایش -> ویرایشگر قالب بروید.
- در فایلهای CSS یا PHP قالب، لینکهای HTTP را پیدا کرده و به HTTPS تغییر دهید.
۵. استفاده از Content Security Policy (CSP)
فعالسازی Content Security Policy (CSP) از طریق فایل .htaccess
یک راهکار موثر برای بهبود امنیت وبسایت شماست. CSP به شما کمک میکند که مشخص کنید کدام منابع (مانند اسکریپتها، تصاویر، و CSS) اجازه بارگذاری دارند و از بارگذاری منابع ناامن (HTTP) جلوگیری میکند.
برای فعالسازی CSP از طریق فایل .htaccess
، مراحل زیر را دنبال کنید:
فایل .htaccess
را باز کرده و کد زیر را به آن اضافه کنید:
- این تنظیمات اطمینان حاصل میکند که تمام منابع سایت شما تنها از طریق HTTPS بارگذاری میشوند. در اینجا:
- default-src https: تمام منابع بهصورت پیشفرض فقط از HTTPS مجاز هستند.
- script-src https: فقط اسکریپتهایی که از HTTPS استفاده میکنند مجاز به بارگذاری هستند.
- style-src https: فایلهای CSS فقط از منابع HTTPS قابل بارگذاری هستند.
- img-src https: data: تصاویر از HTTPS یا منابع data URI مجاز هستند.
- فایل را ذخیره کرده و تغییرات را اعمال کنید.
این دستور به مرورگرها میگوید که تنها منابع امن بارگذاری شوند و هرگونه تلاش برای بارگذاری محتوای ناامن را مسدود میکند. با این کار، امنیت سایت شما در برابر حملات مختلف از جمله حملات Cross-Site Scripting (XSS) افزایش مییابد.
به فایل .htaccess دسترسی پیدا کنید. این فایل معمولاً در دایرکتوری ریشه (root) هاست شما قرار دارد. میتوانید از طریق پنل مدیریت هاست یا FTP به آن دسترسی پیدا کنید.
- به فایل htaccess. سایت خود دسترسی پیدا کنید.
کد زیر را در فایل htaccess. اضافه کنید:
Header set Content-Security-Policy "default-src https:; script-src https:; style-src https:; img-src https: data:;"
در صورتی که نیاز به انجام خدمات افزایش امنیت وردپرس و رفع خطاهای امنیتی مانند Mixed Content در سایت خود دارید، میتوانید از خدمات تخصصی افزایش امنیت وردپرس مرکز وردپرس استفاده کنید. تیم ما با بررسی کامل سایت شما، مشکلات امنیتی را شناسایی و با بهروزرسانیها و پیکربندیهای مناسب، سایت شما را در برابر تهدیدات محافظت میکند.
خدمات افزایش امنیت وردپرس در مرکز وردپرس بهصورت تضمینی ارائه میشود و تمامی اقدامات امنیتی با گارانتی 30 روزه انجام میگیرند. این به این معناست که پس از انجام خدمات، سایت شما تحت پشتیبانی امنیتی ما قرار خواهد داشت و هرگونه مشکلی که در این مدت رخ دهد، بهصورت رایگان رفع خواهد شد. هدف ما ارائه راهکارهای مطمئن برای حفظ امنیت و اعتماد سایت شما در برابر تهدیدات آنلاین است.
نتیجهگیری
در این آموزش، مراحل مختلف رفع خطای Mixed Content در وردپرس را بررسی کردیم. با استفاده از افزونههای مختلف و همچنین ویرایش دستی فایلها، میتوانید این مشکل را حل کنید و اطمینان حاصل کنید که سایت شما بهصورت ایمن و بدون خطا اجرا میشود.
لطفا کد رفع خطای Mixed content در وردپرس با فایل .htaccess
# Force HTTPS for all requests
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>