امنیت headers وردپرس

امنیت Headers وردپرس؛ راهنمای جامع پیکربندی هدرهای امنیتی HTTP

وقتی صحبت از محافظت از وب‌سایت وردپرسی می‌شود، خیلی از مدیران سایت فقط به نصب افزونه‌های امنیتی یا تغییر آدرس ورود فکر می‌کنند. اما یک لایه دفاعی بسیار قوی و در عین حال نادیده گرفته‌شده وجود دارد که مستقیم در سطح مرورگر کاربر عمل می‌کند: هدرهای امنیتی HTTP. اگر می‌خواهید جلوی حملاتی مثل XSS، Clickjacking و تزریق کدهای مخرب را بگیرید، تنظیم درست هدرها ضروری است. برای آشنایی بیشتر با اصول پایه پیشنهاد می‌کنیم بخش امنیت وب سایت را حتماً بررسی کنید.

⚡ نگاه سریع: ۶ هدر امنیتی نجات‌بخش وردپرس
1. CSP: جلوگیری از اجرای اسکریپت‌های مخرب (XSS)
2. HSTS: اجبار مروگر به استفاده همیشگی از HTTPS
3. X-Frame-Options: مقابله با حملات کلیک‌جکینگ (Clickjacking)
4. X-Content-Type: جلوگیری از تغییر نوع فایل‌ها توسط مرورگر
5. Referrer-Policy: مدیریت اطلاعات ارسالی در ارجاعات
6. Permissions-Policy: محدودسازی دسترسی به دوربین و میکروفون

📋 فهرست مطالب این مقاله
  • هدر امنیتی HTTP چیست؟
  • معرفی ۶ هدر امنیتی کلیدی وردپرس
  • روش‌های پیاده‌سازی هدرهای امنیتی در سرور و وردپرس
  • جدول مقایسه کارکرد هدرهای امنیتی
  • چگونه هدرهای امنیتی را تست کنیم؟
  • عیب‌یابی سریع مشکلات پس از فعال‌سازی
  • سوالات متداول

هدر امنیتی HTTP چیست و چگونه کار می‌کند؟

امنیت headers وردپرس — تصویر 1

پاسخ کوتاه: هدرهای امنیتی HTTP کدهای دستورالعملی هستند که سرور سایت همراه با پاسخ درخواست، به مرورگر کاربر ارسال می‌کند. این هدرها به مرورگر دستور می‌دهند که هنگام بارگذاری کدهای JavaScript، فریم‌ها، تصاویر و سایر منابع، رفتاری سخت‌گیرانه و امن داشته باشد تا جلوی نفوذ هکرها گرفته شود.

وقتی کاربری وارد سایت شما می‌شود، مرورگر او پیامی به سرور می‌فرستد. سرور علاوه بر فرستادن کدهای HTML و عکس‌ها، مجموعه‌ای از اطلاعات پنهان را به عنوان “Header” ارسال می‌کند. اگر این هدرها شامل دستورات امنیتی نباشند، مرورگر فرض را بر اعتماد کامل می‌گذارد و اینجاست که آسیب‌پذیری‌ها شکل می‌گیرند.

معرفی ۶ هدر امنیتی کلیدی برای وردپرس

امنیت headers وردپرس — تصویر 2

در این بخش شش هدر حیاتی را بررسی می‌کنیم که هر سایت وردپرسی باید آن‌ها را فعال کند تا ریسک حملات سایبری به حداقل برسد.

۱. Content Security Policy (CSP)

هدر CSP یکی از قدرتمندترین ابزارها برای جلوگیری از حملات Cross-Site Scripting (XSS) است. این هدر مشخص می‌کند مرورگر اجازه دارد اطلاعت و اسکریپت‌ها را از چه دامنه و منبعی دریافت کند. اگر هکری سعی کند کدهای مخرب را به سایت شما تزریق کند، مرورگر به دلیل نداشتن مجوز در CSP، آن کد را اجرا نخواهد کرد.

Content-Security-Policy: default-src ‘self’; script-src ‘self’ https://trustedscripts.com;

۲. HTTP Strict Transport Security (HSTS)

این هدر مرورگر را موظف می‌کند فقط و فقط از طریق پروتکل امن HTTPS با سایت ارتباط برقرار کند. این موضوع مانع از حملات Man-in-the-Middle (MITM) و SSL Strip می‌شود. با فعال‌سازی این بخش، حتی اگر کاربر آدرس سایت را با HTTP وارد کند، مروگر به صورت خودکار و بدون ارسال درخواست ناامن، آن را روی HTTPS باز می‌کند.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

۳. X-Frame-Options

حمله کلیک‌جکینگ زمانی رخ می‌دهد که مهاجم سایت شما را درون یک فریم نامرئی (iframe) در سایت خود قرار می‌دهد و کاربر را گول می‌زند تا روی دکمه‌های حساس کلیک کند. هدر X-Frame-Options جلوی قرار گرفتن سایت شما در iframe سایر دامنه‌ها را می‌گیرد.

X-Frame-Options: SAMEORIGIN

۴. X-Content-Type-Options

گاهی اوقات مرورگرها تلاش می‌کنند نوع یک فایل را حدس بزنند (MIME Sniffing). برای مثال اگر فایلی با پسوند تصویر آپلود شده اما حاوی کدهای جاوااسکریپت باشد، مرورگر ممکن است آن را به عنوان کد اجرا کند! این هدر مرورگر را مجبور می‌کند دقیقاً از نوع فایل اعلان شده پیروی کند.

X-Content-Type-Options: nosniff

۵. Referrer-Policy

وقتی کاربری از سایت شما روی لینکی کلیک می‌کند و به سایت دیگری می‌رود، مرورگر آدرس دقیق صفحه‌ای که کاربر در آن قرار داشته را برای سایت مقصد می‌فرستد. این هدر مشخص می‌کند چه مقدار از این اطلاعات ارجاعی به مقاصد خارجی ارسال شود تا حریم خصوصی کاربران حفظ گردد.

۶. Permissions-Policy

این هدر قبلاً به نام Feature-Policy شناخته می‌شد. با استفاده از آن می‌توانید دسترسی مرورگر به سخت‌افزارهایی مانند دوربین، میکروفون، موقعیت مکانی (Geolocation) و غیره را برای صفحات سایت مدیریت یا کاملاً مسدود کنید.

البته لازم به ذکر است که امنیت فقط محدود به هدرها نیست. اقداماتی نظیر به روز رسانی امنیتی وردپرس نیز جزو الزامات اولیه نگهداشت وب‌سایت است.

روش‌های پیاده‌سازی هدرهای امنیتی در سرور و وردپرس

برای اضافه کردن این هدرها به وردپرس چند راه مختلف وجود دارد. طبق تجربه، بهترین و سریع‌ترین روش افزودن کدها به فایل کانفیگ سرور است.

روش اول: ویرایش فایل htaccess. (مخصوص Apache / LiteSpeed)

اگر سرور شما از آپاچی یا لایت‌اسپید استفاده می‌کند، فایل .htaccess در پوشه اصلی سایت (public_html) قرار دارد. پس از پشتیبان‌گیری، کدهای زیر را در انتهای تظظیمات این فایل اضافه کنید:

<IfModule mod_headers.c>
  Header set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”
  Header set X-Frame-Options “SAMEORIGIN”
  Header set X-Content-Type-Options “nosniff”
  Header set Referrer-Policy “strict-origin-when-cross-origin”
  Header set Permissions-Policy “geolocation=(), microphone=(), camera=()”
  Header set Content-Security-Policy “default-src ‘self’ https: data: ‘unsafe-inline’ ‘unsafe-eval'”
</IfModule>

روش دوم: تنظیم هدرها در وب‌سرور Nginx

در سرورهای Nginx باید کدهای هدر را داخل فایل پیکربندی سایت (معمولاً در مسیر /etc/nginx/sites-available/) و در بلاک server وارد کنید:

add_header Strict-Transport-Security “max-age=31536000; includeSubDomains; preload” always;
add_header X-Frame-Options “SAMEORIGIN” always;
add_header X-Content-Type-Options “nosniff” always;
add_header Referrer-Policy “strict-origin-when-cross-origin” always;
add_header Permissions-Policy “geolocation=(), microphone=(), camera=()” always;

روش سوم: از طریق فایل functions.php پوسته وردپرس

اگر دسترسی به سطح سرور ندارید، می‌توانید کدهای زیر را به فایل functions.php قالب چایلد (Child Theme) خود اضافه کنید:

function add_security_headers() {
    header(“Strict-Transport-Security: max-age=31536000; includeSubDomains; preload”);
    header(“X-Frame-Options: SAMEORIGIN”);
    header(“X-Content-Type-Options: nosniff”);
    header(“Referrer-Policy: strict-origin-when-cross-origin”);
}
add_action(‘send_headers’, ‘add_security_headers’);

روش چهارم: استفاده از افزونه‌های امنیتی وردپرس

چنانچه کدنویسی برایتان دشوار است، افزونه‌هایی مثل Redirection یا HTTP Headers امکان مدیریت کامل هدرها را از طریق پنل مدیریت فراهم می‌کنند. هرچند پیشنهاد می‌شود به جای نصب افزونه جدید، هدرها را مستقیم از طریق سرور تنظیم کنید تا بار اضافه به وردپرس تحمیل نشود.

به یاد داشته باشید برای پروژه‌های بزرگ مثل طراحی سایت فروشگاهی امن یا پروژه‌های حساس طراحی سایت شرکتی، انجام تستی کامل روی هدرها پیش از بالا آمدن سایت اهمیت بالایی دارد.

جدول مقایسه: وظیفه اصلی هر هدر امنیتی

عنوان هدر (Header Name) نقش و کاربرد اصلی در امنیت سایت
Content-Security-Policy جلوگیری از حملات تزریق کد و اسکریپت‌های مخرب (XSS)
Strict-Transport-Security اجبار مرورگر به استفاده دائمی از ارتباط رمزنگاری‌شده HTTPS
X-Frame-Options جلوگیری از بارگذاری سایت درون iframe و حملات Clickjacking
X-Content-Type-Options غیرفعال کردن قابلیت تغییر خودکار نوع فایل‌ها در مرورگر
Referrer-Policy محافظت از اطلاعات حساس موجود در آدرس صفحات هنگام ارجاع
Permissions-Policy محدودسازی دسترسی وب‌سایت به سخت‌افزارها و امکانات دستگاه کاربر

چگونه هدرهای امنیتی سایت خود را تست کنیم؟

پس از ذخیره تغییرات، حتماً باید صحت اجرای آن‌ها را بستر سنجش قرار دهید. برای این کار دو راهکار ساده وجود دارد:

  1. استفاده از ابزارهای آنلاین: ساده‌ترین راه، ورود به سایت رایگان securityheaders.com است. با وارد کردن آدرس سایت، نمره‌ای از A+ تا F دریافت می‌کنید که نشان‌دهنده وضعیت پیکربندی هدرهاست.
  2. بررسی از طریق Inspect مرورگر: کلید F12 را فشار دهید، به زبانه Network بروید، صفحه را رفرش کنید و روی اولین درخواست (آدرس اصلی سایت) کلیک کنید. در بخش Response Headers می‌توانید هدرهای فعال را مشاهده کنید.

در کنار هدرها، اقدامات مکمل دیگری مثل ورود با آی پی مشخص در وردپرس نیز برای امنیت پنل مدیریت بسیار مفید است.

عیب‌یابی سریع (Troubleshooting) مشکلات پس از فعال‌سازی

گاهی اوقات اعمال سخت‌گیرانه هدرها ممکن است ظاهر سایت یا عملکرد برخی اسکریپت‌ها را به هم بریزد. در ادامه راه‌حل‌های سریع چند مشکل شایع آورده شده است:

مشکل ۱: بهم ریختگی فونت‌ها یا لود نشدن کدهای آمارگیر پس از فعال‌سازی CSP

راه‌حل: هدر CSP مانع بارگذاری منابع از دامنه‌های خارج از لیست سفید می‌شود. دامنه سرویس‌های خارجی (مثل فونت‌های گوگل، گوگل آنالیتیکس یا چت آنلاین) را در بخش script-src و font-src کد CSP اضافه کنید.

مشکل ۲: ارور ۵۰۰ Internal Server Error پس از ویرایش .htaccess

راه‌حل: این خطا ناشی از اشتباه نگارشی در کد یا عدم پشتیبانی سرور از ماژول mod_headers است. فایل htaccess را باز کرده و کد اضافه شده را بررسی یا موقتاً حذف کنید.

مشکل ۳: ارور Redirect Loop پس از فعال کردن HSTS

راه‌حل: مطمئن شوید گواهی SSL روی تمام ساب‌دامنه‌ها نصب است و سایت بدون مشکلی فقط با HTTPS باز می‌شود. اگر ssl معتبر ندارید نباید HSTS را روشن کنید.

اگر در فرایند کانفیگ سرور دچار سردرگمی شدید، سپردن کار به یک شرکت امنیت وردپرس یا دریافت مشاوره از تیم متخصص کارشناسی امنیت وردپرس می‌تواند خیال شما را کاملاً راحت کند.

البته هدرهای HTTP به تنهایی کافی نیستند و نباید در برابر حملات سنگین‌تر مثل حملات brute force وردپرس غافل شد.

سوالات متداول درباره هدرهای امنیتی وردپرس

آیا فعال‌سازی هدرهای امنیتی روی سرعت سایت اثر منفی دارد؟

خیر، حجم این هدرها در حد چند بایت متنی ساده است و هیچ تأثیر منفی روی سرعت بارگذاری ندارد؛ حتی با افزایش امنیت و جلوگیری از اجرا شدن اسکریپت‌های ناشناس، مرورگر کارآمدتر عمل می‌کند.

آیا تنظیم هدرهای امنیتی روی سئو سایت تأثیرگذار است؟

بله! موتورهای جستجو به امنیت کاربران اهمیت زیادی می‌دهند. استفاده از HTTPS و هدر HSTS از معیارهای رتبه‌بندی است و باعث رشد پایدار در حوزه سئو می‌شود.

کدام هدر امنیتی ممکن است باعث اختلال در سایت شود؟

هدر CSP اگر دقیق کانفیگ نشود احتمال دارد جلوی بارگذاری برخی فایل‌های جاوااسکریپت، فونت‌ها یا استایل‌های ضروری را بگیرد. بهتر است ابتدا آن را در حالت Report-Only تست کنید.

اميدواریم با اجرای این راهنما بتوانید ایمنی پایگاه داده و وب‌سایت خود را ارتقا دهید. برای اجرای دقیق پروژه‌های مدرن وب و همچنین آشنایی با استراتژی‌های رشد کسب‌وکار، حتماً بخش توسعه وب و خدمات دیجیتال مارکتینگ را در وب‌سایت مهیار هاب دنبال کنید.

Table of Contents

آخرین نوشته‌ها