خطای Mixed content یکی از خطاهای شایع در وردپرس است که اغلب به دلیل تنظیم نادرست گواهی SSL یا پروتکل HTTPS رخ میدهد. برای رفع این مشکل باید تنظیمات مربوطه را بررسی و درست کنید. آموزشهای موجود در ماهان سرور میتواند شما را در حل این مسأله قدم به قدم راهنمایی کند. با وجود اینکه خطای محتوای مخلوط ممکن است در عملکرد وبسایت اختلال ایجاد نکند، اما میتواند تأثیر منفی بر سئو و تجربه کاربری داشته باشد. به همین منظور، اختصاص دادن چند دقیقه زمان برای حل این مشکل ارزشمند است.
آنچه در این مطلب خواهید خواند
چرا با خطای Mixed content در وردپرس مواجه شدهایم؟
همانطور که قبلاً اشاره کردیم، این مشکل عمدتاً ناشی از ناهماهنگیها در تنظیم HTTPS / SSL است. پس متوجه میشویم این خطا اغلب زمانی رخ میدهد که گواهی SSLدر وبسایت فعال شده باشد؛ به عبارت دیگر، وبسایتهایی که هنوز از HTTP استفاده میکنند با این خطا روبرو نمیشوند. این خطا زمانی بروز میکند که پس از فعالسازی SSLبرخی از عناصر وبسایت همچنان از پروتکل امن HTTP استفاده میکنند.
این محتواها ممکن است شامل تصاویر، ویدئوها، فایلهای CSS، Javascript و غیره باشند. بنابراین، زمانی که در کنار محتوای امن HTTPS، محتوای غیرامن HTTP ارائه میشود، به این حالت خطای Mixed content میگوییم. اما چرا باید از گواهی SSL استفاده کنیم؟ به بیانی ساده، فعالسازی این گواهی و استفاده از پروتکل HTTPS برای افزایش امنیت و محافظت از دادههای تبادلی وبسایتها امری ضروری است.
معنای خطای Mixed content چیست؟
استفاده از گواهی SSL برای سایتهای وردپرسی به شما امکان میدهد از پروتکل HTTP به HTTPS برای تقویت امنیت سایت خود ارتقا پیدا کنید. از سال ۲۰۱۸، مرورگر گوگل کروم وب سایتهایی که از HTTP استفاده میکنند را ناامن معرفی میکند. در نتیجه، فعالسازی SSL یک لایه حفاظتی اضافه برای امنیت کاربران هنگام بازدید از وبسایت شما ایجاد میکند.
بیشتر شرکتهای هاستینگ از گواهینامه SSL پشتیبانی کرده و آن را به صورت رایگان در اختیار میگذارند که شما میتوانید به راحتی آن را بر روی سایت خود نصب و فعالسازی کنید. همچنین میتوانید با استفاده از افزونههای مخصوص SSL در وردپرس، این پروسه را تسهیل ببخشید. با انجام این کار به درستی، آیکن قفلی به رنگ سبز در کنار آدرس وبسایت شما نمایان خواهد شد که نشاندهنده امن بودن سایت شما است.
راهکارهای رفع خطای Mixed Content
در ادامه قصد معرفی روش های مختلف برای رفع خطای Mixed Content را داریم، پس همراه ما باشید:
1.رفع خطای Mixed Content با افزونه
برای مقابله با خطای Mixed Content در وردپرس پیشنهاد میشود از افزونهای به نام SSL Insecure Content Fixer استفاده کنید. این افزونه با تبدیل محتوای غیر امن به امن، به برطرف کردن چنین مشکلاتی کمک میکند و رایگان است. روند استفاده از افزونه به شرح زیر است:
وارد بخش مدیریتی وردپرس خود شوید.
به قسمت «افزونهها» رفته و روی گزینه «افزودن جدید» کلیک کنید.
در قسمت جستجو کلمه «SSL Insecure Content Fixer» را وارد کنید.
افزونه را از بین نتایج یافت شده انتخاب کرده و سپس روی «نصب» کلیک نمایید.
بعد از اتمام نصب، گزینه «فعالسازی» را انتخاب کنید تا افزونه شروع به کار کند.
در مرحله بعدی: بررسی تنظیمات افزونه
پس از فعال سازی افزونه SSL Insecure Content Fixer به منظور حل مشکل Mixed Content باید تنظیمات این افزونه را مورد بررسی قرار دهید. این کار را با دنبال کردن مراحل زیر انجام دهید:
به بخش مدیریت وردپرس خود وارد شوید.
از پنل سمت چپ گزینه «تنظیمات» را انتخاب کنید.
به دنبال گزینه «SSL Insecure Content» بگردید و روی آن کلیک کنید.
در بخش تنظیمات افزونه SSL Insecure Content Fixer شما میتوانید از میان پنج روش متفاوت برای حل مشکل محتوای ترکیبی (Mixed Content) یکی را انتخاب کنید:
حالت ساده Simple
این گزینه بهترین انتخاب برای کاربرانی است که به دنبال راهحلی سریع و آسان هستند. در این حالت، افزونه بهطور خودکار خطاهای محتوای ترکیبی مربوط به اسکریپتها، استایلها و تصاویر رسانهای وردپرس را برطرف میکند.
حالت محتوا (Content)
این سطح شامل تمامی قابلیتهای حالت ساده بهعلاوه پرداختن به مسائل مربوط به محتوا و ویجتهای متنی است.
حالت ویجتها (Widgets)
این سطح تمامی اقدامات رفع ایراد از دو سطح قبلی را بهعلاوه رسیدگی به مسائل خاصی که ممکن است در ویجتهای وردپرس ایجاد شوند را شامل میشود.
حالت ثبت (Capture)
این روش تمامی URLها در تمام صفحات وبسایت، از بخش هدر گرفته تا فوتر را آنالیز میکند و به HTTPS تغییر میدهد. این فرآیند ممکن است تأثیر نسبی بر سرعت وبسایت شما داشته باشد.
ثبت همه موارد (Capture All)
این روش برای حل هر مشکل احتمالی که میتواند موجب بروز رفتارهای غیرمعمول در وبسایت شود، به کار میرود. این مورد ممکن است بیشترین تأثیر را بر عملکرد سایت شما داشته باشد.
برای کاربران تازهکار، حالت ساده راهحلی بیدردسر و کارآمد را ارائه میدهد؛ در حالیکه کاربران با تجربه که به دنبال یک راهحل جامع هستند ممکن است ترجیح دهند حالت ثبت همه موارد را انتخاب کنند.
مرحله بعد: بررسی وب سایت
در این مرحله، ضروری است که وبسایت خود را بعد از تنظیم افزونه برای حل مشکل Mixed Content بررسی کنید. باز کردن یک صفحه تصادفی از سایتتان و بررسی نبود پیامهای هشدار خطای Mixed Content نشاندهنده موفقیت عملکرد افزونه است. اگر همچنان با مشکل روبرو هستید، سعی کنید روش دیگری را امتحان کنید.
2.رفع خطای Mixed Content از طریق بروز رسانی لینک ها
در صورتی که روش افزونه HTTPS/SSL به تنهایی کافی نبود، تلاش برای بهروزرسانی دستی URLهای HTTP ممکن است مفید باشد. این امر وقتی که URL ها بهصورت دستی در پایگاه داده یا فایلهای سایت وارد شدهاند لازم است. در این حالت، لازم است که تمام URLهای HTTP را به HTTPS تغییر دهید. برای تعداد کمی لینک، این کار را بهصورت دستی انجام دهید و در صورت وجود تعداد زیادی لینک ناامن، بهکارگیری افزونه Better Search Replace برای بهروزرسانی کلی تمام لینکها در پایگاه داده توصیه میشود.
مرحله اول: بکاپ گیری
قبل از انجام هرگونه تغییر در پایگاه داده، اطمینان حاصل کنید که از وبسایت خود بکاپ گرفتهاید.
مرحله دوم: نصب افزونه Better Search Replace
سپس افزونه Better Search Replace را از داخل مخزن افزونههای وردپرس جستجو کنید و آن را نصب و فعال کنید.
مرحله سوم: پیکربندی افزونه Better Search Replace
- در داشبورد مدیریتی خود به قسمت ابزارها (Tools) بروید و سپس Better Search Replace را انتخاب کنید.
- در فیلد جستجو (Search for)آدرس وبسایت خود را با پروتکل HTTP وارد نمایید و در فیلد جایگزینی (Replace with)نسخه HTTPS آدرس را وارد کنید.
- در قسمت انتخاب جداول (Select tables)تعیین کنید که کدام جداول باید به روز رسانی شوند. با نگه داشتن دکمه Ctrl میتوانید همه جداول را به طور همزمان انتخاب کنید.
- برای آغاز فرآیند جستجو و جایگزینی روی دکمه Run Search/Replace کلیک کنید.
- با فعال بودن حالت آزمایشی (Dry run)افزونه نتایج یافتههای خود را نمایش میدهد. این ویژگی به شما اطمینان میدهد که URL های درست تشخیص داده شدهاند.
- پس از بررسی و تایید، حالت آزمایشی را غیرفعال کرده و فرآیند جستجو و جایگزینی را دوباره تکرار کنید. قبل از اقدام به بررسی وبسایت نیز مطمئن شوید که کش مرورگر خود را پاک کردهاید.
3.رفع خطای Mixed Content با فایل htaccess
برای رفع خطای Mixed Content در وردپرس توسط فایل .htaccess مراحل زیر را دنبال کنید:
فایل .htaccess را در شاخه اصلی (Root directory) وبسایت خود بیابید یا در صورت نبود، آن را بسازید.
ابتدا فایل را برای ویرایش باز کرده و کد زیر را در انتهای آن اضافه نمایید:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy “upgrade-insecure-requests;
این تغییرات به سرور وب شما دستور میدهند تمام درخواستهای HTTP را به HTTPS ارتقاء دهند؛ چرا که در رفع خطای Mixed Content کمک کننده هستند. پس از ذخیرهسازی تغییرات در فایل .htaccess و پاکسازی کش مرورگر، وبسایت خود را مجدداً بررسی کنید. در صورتی که موفق به حل مساله خطای (Mixed Content) در وردپرس شده باشید، وبسایت شما باید بدون هیچ گونه مشکلی برای کاربران قابل مشاهده باشد.
چرا فعال سازی گواهی SSL ضروری است؟
برای هر وب سایتی، فعال سازی گواهی SSL باید در اولویت باشد. اگر هنوز این گواهی را بر روی سایت خود فعال نکردهاید، به شدت توصیه میشود که فوراً اقدام به این کار کنید. دلیل این اهمیت به امنیت ارتباطی برمیگردد که میان کاربر و سرور شما برقرار میشود. با فعالسازی SSL، پروتکل امنیتی HTTPS فعال میشود که جایگزین HTTP خواهد شد. این پروتکل یک روش رمزنگاری شدهتر و ایمنتر را برای انتقال دادهها فراهم میآورد که از سرقت اطلاعات توسط هکرها جلوگیری میکند.
با توجه به امنیت بالاتری که HTTPS ارائه میدهد، مرورگرهایی مانند کروم و همینطور موتورهای جستجو مانند گوگل وب سایتهایی که هنوز از پروتکل HTTP ساده استفاده میکنند را ناامن شناسایی میکنند. به خصوص اگر وب سایت شما دادههای شخصی کاربران را جمعآوری میکند یا تراکنشهای مالی انجام میدهد، داشتن گواهی SSL بسیار حیاتی است. همچنین، فعالسازی SSL باعث میشود که آیکون قفلی در کنار آدرس سایت شما در نوار آدرس مرورگر به نمایش درآید، نشانهای که کاربران را از امنیت سایتتان مطمئن میسازد.
چگونه گواهی SSL را فعال کنیم؟
برای فعالسازی گواهی SSLدو گزینه اصلی پیش رو دارید:
- انتخاب یک سرویس میزبانی که این قابلیت را به صورت خودکار برای شما فعال سازد، تعدادی از شرکتهای میزبانی چنین خدمتی را ارائه میدهند.
- استفاده از افزونهای همچون Really Simple SSL.
یادآوری میشود، افزونه Really Simple SSL را میتوانید به صورت رایگان از مخزن افزونههای وردپرس دانلود کنید. این افزونه در نسخه رایگان خود قابلیت فعالسازی SSL را دارا است. البته، نسخه Pro این افزونه امکانات بیشتری نظیر فعالسازی HSTS، پیکربندی سایت برای HSTS Preload List، فعالسازی هدرهای امنیتی پیشرفتهتر، اطلاعرسانی در مورد انقضای گواهی SSL و کمک به رفع خطای Mixed content را ارائه میدهد. اگر به دنبال راهحلی برای برطرف کردن خطای Mixed content در وردپرس هستید، استفاده از این افزونه یا سایر افزونههای موجود میتواند مفید باشد.
چگونه بدانیم کدام قسمت از سایت در بستر HTTP است؟
برای شناسایی بخشهای وبسایت که هنوز از HTTP استفاده میکنند، لازم نیست به صورت دستی وارد جزئیات افزونهای مانند Really Simple SSL شوید. این افزونه به صورت خودکار وب سایت شما را بررسی کرده و مشکلات مربوط به Mixed content را شناسایی و حل میکند. ولی اگر مایل به رویکرد دستی هستید و میخواهید با دقت بیشتری بفهمید که کدام بخشها ممکن است مشکل داشته باشند، میتوانید از ابزار Inspect موجود در مرورگرها استفاده کنید. برای این کار، سادهترین روش این است که به وبسایت خود بروید، روی هر قسمتی از صفحه راست کلیک کرده و گزینه Inspect را انتخاب کنید. اگرچه این ابزار در بیشتر مرورگرها موجود است، اما استفاده از مرورگر کروم ممکن است راحتتر باشد.
وجود خطای Mixed Content چه مشکلاتی را ایجاد می کند؟
در مورد خطای Mixed Content در وبسایتهای وردپرس، این خطا مانند استفاده از مواد غذایی قدیمی در یک رستوران است، جایی که برخی از مواد تازه و برخی قدیمیاند و در نهایت کیفیت خدمت را کاهش میدهند. به این ترتیب، Mixed Content میتواند امنیت و کارآمدی وبسایت شما را کاهش دهد، چرا که محتوای امنیتی (HTTPS) با محتوای غیر امن (HTTP) مخلوط شده است. در واقع وجود این خطا سبب بروز مشکلات زیر می شود:
1.کاهش امنیت وب سایت
هنگامی که یک صفحه وب که تحت پروتکل امن (HTTPS) بارگذاری شده است شامل محتوایی از منابع ناامن (HTTP) باشد، در واقع این ترکیب میتواند امنیت سایت را به خطر اندازد و این فرصت را به مهاجمان میدهد تا از این محتوای غیر امن به عنوان نقطه نفوذ برای حملات احتمالی استفاده کنند.
2.ایجاد تجربه کاربری ناخوشایند
علاوه بر موضوع امنیت، مواجهه با خطای Mixed Content میتواند تأثیر منفی بر تجربه کاربران بگذارد، زیرا به اعتبار سایت شما لطمه میزند و باعث کاهش اعتماد کاربر میشود. این امر میتواند در نهایت به افزایش نرخ پرش و کاهش نرخ تبدیل منجر گردد.
3.کاهش رتبه بندی سایت هنگام جستجو
از نظر سئو نیز، امنیت یک عامل حساس بهشمار میرود و موتورهای جستجو وبسایتهایی که محتوای امن و غیر امن را در هم ترکیب میکنند را کمتر ترجیح میدهند. درنتیجه، وبسایتهای دارای خطای Mixed Content ممکن است رتبه پایینتری در نتایج جستجوی آنلاین کسب کنند.
4.لود نشدن آیکن ها و فونت ها در وب سایت
گاهی اوقات، ممکن است در سایت وردپرسی شما با مشکلی مواجه شوید که در آن آیکونها به جای نمایش صحیح، به صورت مربع ظاهر شوند یا فونتهای انتخابی سایت به درستی بارگذاری نشوند. این مورد میتواند حتی در صورت دقت و تنظیم صحیح فونتها در تنظیمات قالب وبسایت شما رخ دهد، اما نتیجه این است که به جای نمایش فونتهای انتخابی شما، فونتهای پیشفرض، ساده و ناخوشایندی به کاربران نمایش داده میشوند.
انواع خطای Mixed Content
مواجه شدن با خطای Mixed Content بر روی سایت شما ممکن است ناشی از دو نوع مختلف این خطا باشد که در زیر به شرح مختصری از هریک پرداختهایم.
نخست، خطای Active Mixed Content وجود دارد که اهمیت بیشتری نسبت به نوع دیگر دارد. این خطا زمانی اتفاق میافتد که اسکریپتها و عناصر فعال دیگری از صفحه وب شما بر روی اتصال غیر از HTTPS بارگذاری میشوند، حال آنکه خود صفحه بر روی HTTPS قرار دارد. این مسئله میتواند به طور جدی به امنیت سایت شما آسیب برساند و اتصال امن HTTPS را مختل کند.
دوم، خطای Passive Mixed Content است که خطر کمتری نسبت به اولی دارد. اخطارهای مربوط به این نوع خطا زمانی ظاهر میشوند که فایلهایی همچون صوت، تصویر یا ویدئو از طریق اتصال HTTP بارگیری میشود. این نوع خطا در صورتی که این فایلها از طریق HTTPS بارگیری شوند، مشکلی ایجاد نخواهد کرد.
سخن پایانی
خطای Mixed Content در وردپرس که ناشی از اختلاف در اتصالات HTTP و HTTPS است، میتواند زمانی رخ دهد که شما برای بهبود امنیت وبسایتتان گواهینامه SSL را نصب میکنید. به همین دلیل، ما راهنمای جامعی برای رفع این مشکل ارائه دادهایم. امید است که این راهنماییها توانسته باشند رضایت شما را در حل این مسئله کسب کنند.