Skip to main content
Back to blog

راهنمای سئو مرحله ۷: امنیت — حداقلی که گوگل در سال ۲۰۲۶ انتظار دارد

·13 دقیقه مطالعه·by LANGR SEO

راهنمای سئو مرحله ۷: امنیت

این مرحله ۷ از راهنمای ۱۳ مرحله‌ای سئو است. امنیت تنها به محافظت از کاربران مربوط نمی‌شود — بلکه به طور مستقیم بر رتبه‌بندی جستجوی شما تأثیر می‌گذارد. گوگل از سال ۲۰۱۴ از HTTPS به عنوان یک سیگنال رتبه‌بندی استفاده کرده و انتظارات تنها افزایش یافته است.


اکثر صاحبان سایت‌ها امنیت را به عنوان یک گزینه دوگانه تلقی می‌کنند: "ما SSL داریم، بنابراین ایمن هستیم." در واقع، گوگل ده‌ها سیگنال امنیتی را ارزیابی می‌کند. سایت‌هایی که هدرهای امنیتی صحیح، گواهی‌نامه‌های معتبر و بدون محتوای مختلط دارند، از سایت‌هایی که تنها یک گواهی SSL پایه دارند، بهتر رتبه‌بندی می‌شوند — در صورتی که سایر موارد برابر باشد.

خبر خوب: بیشتر اصلاحات امنیتی یک بار تنظیم می‌شوند. یک بار آن‌ها را تنظیم کنید و به طور دائمی از رتبه‌های شما محافظت می‌کنند.

تنظیمات SSL

SSL (از نظر فنی TLS) اتصال بین سرور شما و بازدیدکنندگان را رمزگذاری می‌کند. از سال ۲۰۱۴، گوگل به وضوح HTTPS را به عنوان یک سیگنال رتبه‌بندی تأیید کرده است. در سال ۲۰۲۶، عدم دسترسی به HTTPS فقط یک مشکل رتبه‌بندی نیست — کروم سایت‌های HTTP را به عنوان "غیر ایمن" در نوار آدرس علامت‌گذاری می‌کند و اعتماد کاربران را از بین می‌برد.

الزامات برای SSL صحیح:

| الزامات | چرا | چگونه بررسی کنیم | |----------|-----|------------------| | گواهی معتبر | منقضی = هشدار مرورگر = کاربران خارج شده | تاریخ انقضا را بررسی کنید | | زنجیره کامل | زنجیرهای ناقص در برخی دستگاه‌ها شکست می‌خورند | آزمون SSL Labs | | TLS 1.2+ | نسخه‌های قدیمی دارای آسیب‌پذیری‌های مشخص هستند | آزمون SSL Labs | | بدون SHA-1 | منسوخ شده، مرورگرها آن را رد می‌کنند | جزئیات گواهی | | پشتیبانی از SAN | www و غیر-www باید هر دو پوشش داده شوند | جزئیات گواهی | | تمدید خودکار | پیشگیری از فاجعه‌های انقضا | تنظیمات Let's Encrypt / ارائه‌دهنده |

امتیازدهی SSL:

100% = گواهی معتبر + زنجیره کامل + TLS 1.3 + رمزگذاری قوی + تمدید خودکار
  0% = گواهی منقضی یا گم شده

اشتباهات رایج SSL:

  1. گواهی منقضی بدون اطلاع‌رسانی — حداقل ۳۰ روز قبل از انقضا نظارت را تنظیم کنید (مرحله ۶)
  2. زنجیره ناقص گواهی — سرور باید گواهی‌های میانی را ارسال کند، نه فقط گواهی برگ
  3. محتوای مختلط — صفحه HTTPS منابع HTTP (تصاویر، اسکریپت‌ها، استایل‌ها) را بارگذاری می‌کند
  4. لوپ‌های بازنهدی — چرخه‌های HTTP → HTTPS → HTTP ناشی از CDN/proxy نادرست پیکربندی شده
  5. عدم تطابق غیر-www و www — گواهی یکی را پوشش می‌دهد ولی دیگری را نه

پیروزی سریع: دامنه خود را از طریق SSL Labs (ssllabs.com/ssltest) بررسی کنید. هر چیزی که زیر رتبه "A" باشد دارای مشکلات قابل اقدام است. بیشتر ارائه‌دهندگان هاست این موارد را با یک کلیک اصلاح می‌کنند.

هدرهای امنیتی

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

هدرهای امنیتی ضروری:

سیاست امنیت محتوای (CSP)

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

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

آنچه CSP جلوگیری می‌کند:

  • حملات اسکریپت بین‌سایتی (XSS)
  • حملات تزریق داده
  • کلیک‌جکینگ (از طریق frame-ancestors)
  • اجرای اسکریپت‌های غیرمجاز (کریپتوماینرها، تزریق‌کنندگان تبلیغ)

استراتژی استقرار CSP:

  1. با Content-Security-Policy-Report-Only شروع کنید (نقض‌ها را بدون مسدود کردن ثبت می‌کند)
  2. گزارش‌ها را به مدت ۱-۲ هفته نظارت کنید
  3. منابع مشروع را در لیست سفید قرار دهید
  4. به حالت اجرایی سوئیچ کنید
  5. برای ثبت نقص‌های مداوم، report-uri یا report-to اضافه کنید

X-Frame-Options

از گنجاندن سایت شما در iframe‌ها در دامنه‌های دیگر جلوگیری می‌کند (محافظت در برابر کلیک‌جکینگ).

X-Frame-Options: DENY

یا اگر نیاز دارید که framing همان مبدأ را مجاز کنید:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

از انجام MIME-type sniffing توسط مرورگرها جلوگیری می‌کند (تعبیر فایل‌ها به عنوان نوع‌های مختلف نسبت به آنچه اعلام شده است).

X-Content-Type-Options: nosniff

این یک خط جلوگیری می‌کند از حملاتی که در آن یک فایل .jpg شامل جاوااسکریپت پنهان است که ممکن است توسط مرورگر اجرا شود.

Referrer-Policy

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

Referrer-Policy: strict-origin-when-cross-origin

این URL کامل را برای درخواست‌های هم‌مبدأ ارسال می‌کند اما تنها مبدأ (دامنه) را برای درخواست‌های بین‌مبدأ.

Permissions-Policy

کنترل می‌کند که کدام ویژگی‌های مرورگر (دوربین، میکروفن، موقعیت جغرافیایی و غیره) می‌توانند در سایت شما استفاده شوند.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

غیرفعال کردن ویژگی‌هایی که استفاده نمی‌کنید از سوءاستفاده اسکریپت‌های شخص ثالث جلوگیری می‌کند.

مثال پیاده‌سازی هدر (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

پیاده‌سازی هدر (Apache .htaccess):

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

پیاده‌سازی هدر (Nginx):

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

پیروزی سریع: تمام ۵ هدر فوق را به تنظیمات سرور خود اضافه کنید. این ۵ دقیقه طول می‌کشد و بلافاصله وضعیت امنیتی شما را در هر ابزاری بهبود می‌بخشد.

پیش‌بارگذاری HSTS

HTTP Strict Transport Security (HSTS) به مرورگرها می‌گوید که همیشه از HTTPS برای دامنه شما استفاده کنند — حتی قبل از اولین درخواست. بدون HSTS، اولین بازدید از سایت شما ممکن است هنوز از HTTP استفاده کند (که در معرض interception است) قبل از اینکه به HTTPS منتقل شود.

هدر HSTS:

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

سه دستور:

| دستور | معنی | |------------------|----------------------------------| | max-age=31536000 | این را به مدت ۱ سال (به ثانیه) به یاد بیاورید | | includeSubDomains | همچنین به تمام زیر دامنه‌ها اعمال می‌شود | | preload | درخواست گنجاندن در لیست‌های پیش‌بارگذاری مرورگر |

فهرست پیش‌بارگذاری HSTS:

نهایت حفاظت HSTS. مرورگرها با یک فهرست داخلی از دامنه‌هایی که باید همیشه از HTTPS استفاده کنند عرضه می‌شوند. ارسال دامنه شما به hstspreload.org به این معنی است:

  • بازدیدکنندگان اولیه فوراً HTTPS دریافت می‌کنند (بدون HTTP → HTTPS انتقال)
  • برای حمله‌کنندگان امکان کاهش ارتباطات وجود ندارد
  • دائمی (سخت به حذف پس از جمع‌آوری)

الزامات برای پیش‌بارگذاری HSTS:

  1. گواهی HTTPS معتبر
  2. انتقال همه HTTP به HTTPS (شامل زیر دامنه‌ها)
  3. هدر HSTS با max-age >= 31536000
  4. هدر HSTS شامل includeSubDomains
  5. هدر HSTS شامل preload
  6. تمام زیر دامنه‌ها باید از HTTPS پشتیبانی کنند

هشدار: فقط در صورتی که تمام زیر دامنه‌های شما از HTTPS پشتیبانی می‌کنند، به پیش‌بارگذاری ارسال کنید. دستور includeSubDomains بدین معنی است که هر زیر دامنه فقط HTTP غیر قابل دسترسی خواهد شد.

پیروزی سریع: اگر قبلاً HTTPS را در تمام زیر دامنه‌ها دارید، هدر HSTS کامل را اضافه کنید و به hstspreload.org ارسال کنید. پردازش چند هفته طول می‌کشد اما حفاظت دائمی است.

اسکن آسیب‌پذیری

اسکنینگ خودکار آسیب‌پذیری مسائلی از امنیت شناخته شده را در استک شما قبل از اینکه حمله‌کنندگان از آن‌ها سوءاستفاده کنند شناسایی می‌کند.

چیزهایی که اسکن آسیب‌پذیری بررسی می‌کند:

  • نرم‌افزارهای قدیمی: وردپرس، افزونه‌ها، کتابخانه‌های جاوااسکریپت با CVE‌های شناخته شده
  • فایل‌های در معرض: .env، .git، wp-config.php، dump‌های پایگاه داده
  • نشت اطلاعات: هدرهای نسخه سرور، حالت اشکال‌زدایی، tracebackها
  • گواهی‌نامه‌های پیش‌فرض: صفحات مدیریت بدون احراز هویت، رمزهای عبور پیش‌فرض
  • پورت‌ها/سرویس‌های باز: سرویس‌های غیرضروری در معرض اینترنت
  • نقاط تزریق: فرم‌ها بدون حفاظت CSRF، ورودی‌های تأیید نشده

آسیب‌پذیری‌های رایج بر اساس پلتفرم:

| پلتفرم | آسیب‌پذیری اصلی | راه حل | |--------------|-----------------------------|----------------------------------| | وردپرس | افزونه‌های قدیمی | به‌روزرسانی خودکار + WAF | | شاپیفای | مجوزهای اپلیکیشن شخص ثالث | بررسی لیست اپلیکیشن‌ها هر سه ماه | | Next.js | مسیرهای API در معرض | Middleware احراز هویت + محدودیت نرخ | | سایت‌های استاتیک | پیکربندی نادرست CDN | بازبینی قوانین کش | | سفارشی | تزریق SQL | پرس و جوهای پارامترمند |

فرکانس اسکن:

  • روزانه: اسکن خودکار سطحی (SSL، هدرها، فایل‌های در معرض)
  • هفتگی: بررسی آسیب‌پذیری‌های وابستگی (npm audit، اسکنر افزونه وردپرس)
  • ماهانه: اسکن عمیق با آزمایش‌های احراز هویت شده
  • بعد از هر استقرار: بررسی عود

پیروزی سریع: npm audit (Node.js) را اجرا کنید یا لیست افزونه‌های CMS خود را برای اجزای قدیمی بررسی کنید. مشکلات بحرانی/شدید را فوراً اصلاح کنید.

محتوای مختلط

محتوای مختلط زمانی رخ می‌دهد که یک صفحه HTTPS منابع (تصاویر، اسکریپت‌ها، استایل‌ها، iframe‌ها) را از HTTP بارگذاری می‌کند. این امر به طور جزئی رمزگذاری را مختل کرده و هشدارهای مرورگر را فعال می‌کند.

انواع محتوای مختلط:

| نوع | شدت | مثال | رفتار مرورگر | |----------|---------|----------------------------|-------------------------| | فعال | بالا | اسکریپت HTTP، iframe، CSS | به طور پیش‌فرض مسدود می‌شود | | غیرفعال | متوسط | تصویر HTTP، ویدیو، صدا | با هشدار بارگذاری می‌شود |

محتوای مختلط فعال توسط مرورگرهای مدرن مسدود می‌شود — به این معنی که اسکریپت‌ها و استایل‌های شما به سادگی بارگذاری نخواهند شد. محتوای مختلط غیرفعال بارگذاری می‌شود اما هشدارهای امنیتی را نمایش می‌دهد.

یافتن محتوای مختلط:

  1. DevTools کروم را باز کنید → کنسول
  2. به دنبال هشدارهای "محتوای مختلط" باشید
  3. به طور جایگزین، با یک خزنده اسکن کنید (Screaming Frog، LANGR)

منابع رایج محتوای مختلط:

  • URLهای http:// سخت‌کوبی شده در محتوای شما (پست‌های بلاگ، توضیحات محصولات)
  • ویجت‌های شخص ثالث که منابع HTTP را بارگذاری می‌کنند
  • محتوای تعبیه شده (تعبیه‌های قدیمی یوتیوب، ویجت‌های رسانه‌های اجتماعی)
  • CSS background-image با URLهای HTTP
  • فونت‌های بارگذاری شده از HTTP

اصلاح محتوای مختلط:

<!-- بد -->
<img src="http://example.com/image.jpg" />

<!-- خوب -->
<img src="https://example.com/image.jpg" />

<!-- بهترین (نسبت به پروتکل، به پروتکل صفحه سازگار می‌شود) -->
<img src="//example.com/image.jpg" />

اصلاح پایگاه داده (وردپرس):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

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

ریسک اسکریپت‌های شخص ثالث

هر اسکریپت خارجی که بارگذاری می‌کنید یک مسئولیت پتانسیل امنیتی (و عملکردی) است. اسکریپت‌های شخص ثالث می‌توانند:

  • به خطر بیفتند (حملات زنجیره تأمین)
  • کاربران شما را بدون رضایت دنبال کنند (نقض GDPR)
  • سایت شما را کند کنند (مسدودکننده رندر، تأخیر شبکه)
  • عملکرد را مختل کنند (به‌روزرسانی‌های نسخه، خاموشی‌ها)
  • محتوای نامطلوب را تزریق کنند (اسکریپت‌های تبلیغ که به اشتباه عمل کنند)

بررسی اسکریپت‌های شخص ثالث:

| اسکریپت | ضروری؟ | سطح ریسک | جایگزین | |----------------------|---------|-----------|------------------| | Google Analytics | اغلب بله | کم | ردیابی سمت سرور | | ویجت‌های چت | شاید | متوسط | راه‌حل‌های خودمیزبانی | | دکمه‌های اشتراک‌گذاری اجتماعی | به ندرت | متوسط | پیوندهای ثابت | | آزمایش A/B | گاهی | بالا | آزمایش سمت سرور | | پیکسل‌های هدف‌گذاری | تصمیم تجاری | بالا | داده‌های شخص اول | | CDN های فونت | راحت | کم | فونت‌های خودمیزبانی |

کاهش ریسک برای اسکریپت‌های شخص ثالث ضروری:

  1. سلامت منابع (SRI): تأیید هاش از بارگذاری اسکریپت‌های تغییر یافته جلوگیری می‌کند
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. محدودیت‌های CSP: تنها اجازه اسکریپت‌ها از دامنه‌های شناخته شده
  2. iframe‌های ایزوله: ایزوله کردن ویجت‌های شخص ثالث
  3. بازرسی منظم: بازبینی سه‌ماهه تمام منابع خارجی
  4. نظارت: هشدار در مورد دامنه‌های خارجی جدید که در صفحات شما ظاهر می‌شوند

پیروزی سریع: هر