فحوصات أمان الموقع التي يمكنك إجراؤها دون اختراق أي شيء

فحوصات أمان سلبية للمتاجر الإلكترونية: انتهاء شهادة TLS وHSTS وCSP وnosniff وخصائص ملفات تعريف الارتباط والمحتوى المختلط وjQuery القديم وsecurity.txt وDMARC.

فريق تحرير FixReportsمدة القراءة: 10 دقيقة

يمكنك فحص جزء كبير من إعدادات أمان متجر إلكتروني من الخارج، بقراءة ما يرسله الموقع بالفعل إلى كل زائر: شهادة TLS، وعمليات إعادة التوجيه، وترويسات استجابة HTTP، وملفات تعريف الارتباط، والسكربتات التي يحمّلها، وسجلات DNS العامة. لا ترسل هذه الفحوصات السلبية أي حركة هجومية ولا تحتاج إلى تسجيل الدخول، لذا لا تضع على المتجر عبئًا أكبر من زيارة عادية. وهي تكشف ثغرات في الإعدادات مثل شهادة توشك صلاحيتها على الانتهاء، أو غياب HSTS، أو ملفات تعريف ارتباط غير آمنة، أو محتوى مختلط، أو إصدار من jQuery يحتوي على ثغرات معروفة. لكنها ليست اختبار اختراق، ولا يمكنها إثبات أن المتجر آمن.

أبرز النقاط

ما الذي يُعدّ فحصًا أمنيًا سلبيًا؟

لا يقرأ الفحص السلبي إلا ما يعيده الموقع أو سجلات DNS الخاصة به ردًا على طلب عادي.

ويعني ذلك تحميل الصفحات العامة، وقراءة الشهادة وترويسات الاستجابة، وسرد ملفات تعريف الارتباط والسكربتات التي تضبطها الصفحة، والاستعلام عن سجلات DNS العامة. ولا يخمّن الفحص السلبي كلمات المرور، ولا يرسل حمولات حقن (injection payloads)، ولا يتحسس عناوين URL الخاصة بلوحة الإدارة، ولا يفحص المنافذ. ويمكن إجراء كل ما يلي باستخدام متصفح وcurl وopenssl وdig.

كيف تتحقق من شهادة TLS وتاريخ انتهاء صلاحيتها؟

اقرأ تواريخ الشهادة والأسماء المدرجة فيها مباشرة، وتأكد من أن التجديد مؤتمت.

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

تأكد من أن تاريخ notAfter بعيد بما يكفي في المستقبل، وأن الشهادة تغطي example.com وwww.example.com معًا إذا كنت تستخدم كليهما (يعرض عارض الشهادات في المتصفح هذه الأسماء)، وأن المتصفح لا يعرض أي تحذيرات. وتتقلص مدد صلاحية الشهادات بموجب المتطلبات الأساسية (Baseline Requirements) الصادرة عن CA/Browser Forum (القسم 6.3.2، الإصدار 2.3.1 حتى أكتوبر 2026)، تبعًا لـ Ballot SC-081v3 (يفتح في علامة تبويب جديدة) الذي اعتُمد في 11 أبريل 2025:

تاريخ إصدار الشهادةالحد الأقصى للصلاحية
قبل 15 مارس 2026398 يومًا
من 15 مارس 2026 إلى 14 مارس 2027200 يوم
من 15 مارس 2027 إلى 14 مارس 2029100 يوم
من 15 مارس 202947 يومًا

تجعل مدد الصلاحية القصيرة التجديد اليدوي محفوفًا بالمخاطر، لذا تأكد من أن شركة الاستضافة أو أداة الشهادات لديك تجدّد الشهادة تلقائيًا. وتأكد أيضًا من أن HTTP العادي يعيد التوجيه إلى HTTPS:

curl -sI http://example.com/ | grep -i -E "^HTTP|^location"

المطلوب استجابة 301 (أو 308) مع ترويسة location تبدأ بـ https://.

ما ترويسات الأمان التي يجب أن يرسلها المتجر الإلكتروني؟

تحجب مجموعة صغيرة من ترويسات الاستجابة الهجمات الشائعة التي تجري في المتصفح، بتكلفة تكاد تكون معدومة.

الترويسةوظيفتهاالقيمة المعتادةالمصدر
Strict-Transport-Securityتطلب من المتصفحات استخدام HTTPS فقط، وتمنع المستخدمين من تجاوز أخطاء الشهادات بالنقرmax-age=31536000; includeSubDomainsMDN (يفتح في علامة تبويب جديدة)
Content-Security-Policy: frame-ancestorsتتحكم في المواقع المسموح لها بتضمين صفحاتك، ما يحمي من هجمات clickjacking (اختطاف النقرات)frame-ancestors 'self'MDN (يفتح في علامة تبويب جديدة)
X-Frame-Optionsآلية أقدم للتحكم في التضمين داخل الإطارات؛ ويذكر OWASP أن frame-ancestors يجعلها متقادمة في المتصفحات التي تدعمهDENY أو SAMEORIGINOWASP (يفتح في علامة تبويب جديدة)
X-Content-Type-Optionsتمنع تخمين نوع MIME (MIME sniffing)، وتحظر السكربتات وأوراق الأنماط التي تُقدَّم بنوع خاطئnosniffMDN (يفتح في علامة تبويب جديدة)
Referrer-Policyتحدّ من مقدار ما يُرسل من عناوين URL الخاصة بك إلى المواقع الأخرىstrict-origin-when-cross-originOWASP
X-XSS-Protectionترويسة مرشّح XSS في المتصفح؛ ويذكر OWASP أنها قد تُحدث ثغرات XSS في مواقع آمنة في الأصللا تضبطها، أو اضبطها على 0OWASP

تحقق مما يرسله متجرك:

curl -sI https://example.com/
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: frame-ancestors 'self'
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin

تنبيهان. الأول أن includeSubDomains يحظر أي نطاق فرعي لا يعمل إلا عبر HTTP، لذا افحص النطاقات الفرعية أولًا. والثاني أن التحميل المسبق لـ HSTS (preload) يتطلب ألا تقل قيمة max-age عن 31536000 مع وجود includeSubDomains، لذا لا تضف preload إلا عندما يكون كل نطاق فرعي جاهزًا لـ HTTPS. وتستحق سياسة CSP كاملة تقيّد السكربتات أن تُطبَّق، لكن OWASP يشير إلى أن إعدادها وصيانتها معقدان، والمتاجر التي تستخدم تطبيقات كثيرة تحتاج إلى اختبارها بعناية.

هل ملفات تعريف الارتباط لديك مضبوطة بالخصائص Secure وHttpOnly وSameSite؟

يجب أن تحمل ملفات تعريف الارتباط الخاصة بالجلسة والسلة الخصائص الثلاث جميعها، ويمكنك رؤيتها في ترويسات الاستجابة Set-Cookie.

الخاصيةتأثيرها (وفق MDN (يفتح في علامة تبويب جديدة))أين تهم
Secureلا يُرسل الملف إلا عبر HTTPS؛ ولا تستطيع المواقع العاملة عبر HTTP العادي ضبط هذه الخاصيةكل ملف تعريف ارتباط في متجر يعمل عبر HTTPS
HttpOnlyلا تستطيع JavaScript قراءة الملف عبر document.cookie، ما يساعد في الحماية من XSSجلسات تسجيل الدخول والسلال
SameSite=Lax أو Strictتحدّ من الحالات التي يُرسل فيها الملف مع الطلبات العابرة للمواقعالجلسات؛ وتناسب Strict ملفات تعريف الارتباط الخاصة بالمصادقة والسلة
SameSite=Noneيُرسل الملف مع الطلبات العابرة للمواقع؛ ويجب أن تقترن بـ Secureالميزات المضمّنة من جهات خارجية التي تحتاج إليها فقط

إذا لم تُضبط الخاصية SameSite، تتعامل المتصفحات مع ملف تعريف الارتباط بوصفه Lax. ولا يمكن أن تكون ملفات تعريف الارتباط التي تحتاج سكربتاتك إلى قراءتها HttpOnly، لذا ركّز على الملفات التي تحدد هوية عميل مسجّل الدخول أو مشرف.

curl -sI https://example.com/ | grep -i "^set-cookie"

وتعرض أدوات المطورين في المتصفح المعلومات نفسها، بما في ذلك ملفات تعريف الارتباط التي تضبطها السكربتات بعد تحميل الصفحة.

كيف تعثر على المحتوى المختلط؟

المحتوى المختلط هو أي مورد يُحمَّل عبر HTTP في صفحة تُقدَّم عبر HTTPS، وتسرده وحدة تحكم المتصفح (console).

يقسمه MDN (يفتح في علامة تبويب جديدة) إلى مجموعتين. الصور والصوت والفيديو محتوى «قابل للترقية» (upgradable): تطلبه المتصفحات تلقائيًا عبر HTTPS. أما السكربتات وأوراق الأنماط وعناصر iframe والخطوط وطلبات fetch() فهي محتوى «قابل للحظر» (blockable): تحظره المتصفحات، فيتعطل كل ما يعتمد عليه. كما تُحظر الطلبات المُرقّاة الموجهة إلى عنوان IP مجرد.

للعثور عليه، افتح وحدة التحكم في قوالب الصفحات الرئيسية (الصفحة الرئيسية، والمجموعة، والمنتج، والسلة)، وابحث عن http:// في شيفرة القالب ومحتوى الصفحات وإعدادات التطبيقات. ويذكر مركز مساعدة Shopify أن أي صفحة في المتجر تحتوي على مورد لا يُقدَّم عبر HTTPS تُعدّ غير آمنة (يفتح في علامة تبويب جديدة)، ويوصي باستضافة الموارد على Shopify أو تقديمها عبر HTTPS. وفي WooCommerce، افحص محتوى التدوينات القديمة وخيارات القالب إذا كان الموقع قد عمل يومًا عبر http://.

كيف تكتشف مكتبات JavaScript القديمة التي لها ثغرات CVE معروفة؟

اسرد المكتبات التي تحمّلها كل صفحة، واقرأ إصداراتها، وقارنها بقاعدة البيانات الوطنية للثغرات (NVD).

ابدأ بـ jQuery. في وحدة تحكم المتصفح، يعيد $.fn.jquery الإصدار المحمَّل (jQuery API (يفتح في علامة تبويب جديدة)). الإصدارات التي يجب التنبيه إليها:

CVEالإصدارات المتأثرةالمشكلةدرجة NVD (v3.1)
CVE-2020-11022 (يفتح في علامة تبويب جديدة)من 1.12.0 حتى ما قبل 3.5.0قد يؤدي تمرير HTML غير موثوق إلى دوال مثل .html() أو .append() إلى تشغيل شيفرة6.1 (متوسطة)
CVE-2020-11023 (يفتح في علامة تبويب جديدة)من 1.0.3 حتى ما قبل 3.5.0المشكلة نفسها، مع HTML يحتوي على عناصر <option>؛ وهي مدرجة في كتالوج KEV لدى CISA منذ 23 يناير 20256.1 (متوسطة)
CVE-2019-11358 (يفتح في علامة تبويب جديدة)قبل 3.4.0تلويث النموذج الأولي (prototype pollution) عبر jQuery.extend(true, ...)6.1 (متوسطة)

أُصلحت مشكلتا عام 2020 كلتاهما في jQuery 3.5.0. ووجود إصدار معرّض للثغرات يعني أن الشيفرة المعيبة موجودة؛ أما إمكانية استغلالها فتعتمد على طريقة تمرير الموقع للبيانات إليها. ويتضمن WordPress الإصدار jQuery 3.5.1 منذ الإصدار 5.6 (يفتح في علامة تبويب جديدة)، لذا فإن وجود jQuery قديم في متجر WooCommerce يشير إلى WordPress غير محدَّث، أو إلى قالب أو إضافة تحمّل نسختها الخاصة. وفي Shopify، افحص ملفات القالب والتطبيقات التي تُدرج سكربتات.

ما ملف security.txt، وهل يحتاج متجرك إليه؟

هو ملف نصي بسيط يخبر الباحثين الأمنيين بكيفية إبلاغك عن ثغرة.

ينص RFC 9116 (يفتح في علامة تبويب جديدة) (أبريل 2022، وهو RFC إعلامي من فئة Informational، لذا فإن اتباعه طوعي) على أن الملف يجب أن يُقدَّم عبر HTTPS في المسار /.well-known/security.txt بنوع text/plain. والحقلان Contact وExpires إلزاميان، ويوصي RFC بأن يكون تاريخ Expires بعد أقل من سنة.

Contact: mailto:security@example.com
Expires: 2027-09-30T23:00:00.000Z
Preferred-Languages: en
Policy: https://example.com/security-policy

في WooCommerce، يمكنك وضع الملف على خادمك. أما على منصة مستضافة، فتحقق مما إذا كان بإمكانك نشر ملف في ذلك المسار؛ وإن لم يكن ذلك ممكنًا، فإن وضع جهة اتصال أمنية واضحة التسمية في صفحة الاتصال يظل مفيدًا.

كيف يحمي DMARC متجرك من انتحال البريد الإلكتروني؟

يتيح لك DMARC أن تطلب من مزوّدي صناديق البريد عزل الرسائل أو رفضها إذا كانت تستخدم نطاقك في عنوان From دون اجتياز SPF أو DKIM متحاذٍ.

السجل بالسياسة p=none يجمع التقارير فقط، ولا يوقف الرسائل المنتحلة. ويتوقع العملاء أن تصلهم تأكيدات الطلبات ورسائل إعادة تعيين كلمة المرور من نطاقك، لذا تستحق رسالة التصيد التي تعرض نطاقك بالضبط أن تُحظر. تحقق من سياستك باستخدام dig +short TXT _dmarc.example.com، وراجع RFC 9989 (يفتح في علامة تبويب جديدة) للاطلاع على المواصفة. ولا يغطي DMARC النطاقات المشابهة، بل النطاق الذي ينشر السجل فقط.

ما الذي تديره Shopify، وما الذي تتحكم فيه أنت في WooCommerce؟

تشغّل Shopify الخوادم التي تقف خلف واجهات متاجرها، بينما يترك متجر WooCommerce المستضاف ذاتيًا إعدادات الخادم لك ولشركة الاستضافة.

الفحصShopifyWooCommerce (استضافة ذاتية)
شهادة TLSمجانية لجميع النطاقات المضافة إلى Shopify (يفتح في علامة تبويب جديدة)؛ وقد تستغرق حتى 48 ساعة للنطاقات الخارجيةشركة الاستضافة أو إعدادك الخاص
إعادة التوجيه من HTTP إلى HTTPSالمنصةخادم الويب أو CDN أو إعدادات الاستضافة
ترويسات الأمانترسلها خوادم Shopifyخادم الويب أو CDN أو إضافة
خصائص ملفات تعريف الارتباطتضبط المنصة ملفات تعريف الارتباط الخاصة بـ Shopify؛ أما ملفات التطبيقات والقالب فمسؤوليتكنواة WordPress والإضافات والخادم
المحتوى المختلط ومكتبات JSقالبك ومحتواك وتطبيقاتكقالبك ومحتواك وإضافاتك
security.txt وDMARCنطاقك وسجلات DNS الخاصة بهنطاقك وسجلات DNS الخاصة به

عندما فحصنا عددًا من واجهات المتاجر المستضافة على Shopify في أكتوبر 2026، تضمنت استجاباتها HSTS بقيمة max-age تعادل نحو 91 يومًا، وX-Content-Type-Options: nosniff، وسياسة CSP تتضمن upgrade-insecure-requests، بينما اختلفت frame-ancestors من متجر إلى آخر. وتذكر Shopify أنها حاصلة على شهادة الامتثال لمعيار PCI DSS من المستوى 1 (يفتح في علامة تبويب جديدة). ويظل قالبك والتطبيقات المثبتة من مسؤوليتك.

وفي WooCommerce، ينصح دليل تقوية الأمان (يفتح في علامة تبويب جديدة) في WordPress بإبقاء WordPress والإضافات محدَّثة، وحذف الإضافات التي لا تستخدمها، وسؤال شركة الاستضافة عن الاحتياطات الأمنية التي تتخذها.

لماذا لا يُعد هذا اختبار اختراق؟

يحاول اختبار الاختراق تنفيذ هجمات فعلية؛ أما الفحوصات السلبية فتكتفي بالملاحظة.

يعرّف NIST SP 800-115 اختبار الاختراق بأنه اختبار أمني يحاكي فيه المقيّمون هجمات واقعية للعثور على طرق للالتفاف على ميزات الأمان في النظام (مسرد NIST (يفتح في علامة تبويب جديدة)). ولا تستطيع الفحوصات السلبية رؤية الثغرات من جهة الخادم في الإضافات، ولا كلمات مرور الإدارة الضعيفة أو المعاد استخدامها، ولا غياب المصادقة الثنائية، ولا خلل التحكم في الوصول، ولا الشيفرة المعرّضة للثغرات التي لا تظهر أبدًا في مصدر الصفحة. استخدمها خط أساس يمكنك تكراره في أي وقت. وللحصول على ضمان أعمق، اطلب إجراء اختبار اختراق بنطاق عمل مكتوب، على أنظمة تملكها أو مصرَّح لك باختبارها.

يجري الفحص المجاني فحصًا أوليًا لمتجرك. ويغطي تقرير أمان الموقع الفحوصات السلبية الواردة في هذه المقالة، من TLS وعمليات إعادة التوجيه إلى الترويسات وملفات تعريف الارتباط والمحتوى المختلط والمكتبات القديمة وsecurity.txt وDMARC، مع حلول لكل نتيجة. وكأي مراجعة سلبية، لا يمكنه ضمان أن المتجر آمن.

الأسئلة الشائعة

هل تعرّض الفحوصات الأمنية السلبية متجري للخطر؟

لا تعرّضه لأكثر مما تعرّضه له زيارة عادية. فهي تطلب الصفحات العامة وسجلات DNS نفسها التي يطلبها أي متصفح أو خادم بريد، ولا تحاول تسجيل الدخول أو إرسال حمولات هجومية.

هل يمكنني إضافة ترويسات أمان في Shopify؟

تأتي ترويسات الاستجابة لواجهة المتجر من خوادم Shopify، لذا تواصل مع دعم Shopify إذا كانت إحدى الترويسات التي تحتاج إليها مفقودة. ويمكن لوسم CSP من نوع <meta> في قالبك إضافة بعض التوجيهات، لكن MDN يشير إلى أن frame-ancestors غير مدعوم في <meta>.

هل يعني وجود إصدار قديم من jQuery أن متجري قد اختُرق؟

لا. بل يعني أن شيفرة ذات ثغرات معروفة محمَّلة في المتجر، ما يرفع مستوى الخطر إذا كان الموقع يمرّر HTML غير موثوق إلى الدوال المتأثرة. حدّثها، أو أزل القالب أو الإضافة التي تحمّلها.

ما أقصى مدة صلاحية لشهادة TLS الآن؟

يمكن أن تكون الشهادات الموثوقة علنًا الصادرة اعتبارًا من 15 مارس 2026 صالحة لمدة 200 يوم على الأكثر. وينخفض الحد إلى 100 يوم اعتبارًا من 15 مارس 2027، وإلى 47 يومًا اعتبارًا من 15 مارس 2029.

هل ملف security.txt إلزامي؟

المعيار RFC 9116 من فئة Informational (إعلامي)، لذا فإن نشر الملف طوعي بموجب المعيار. لكن نشره قليل التكلفة، ويمنح الباحثين طريقة واضحة للتواصل معك.

هل يعني اجتياز الفحص السلبي دون مشكلات أن متجري آمن؟

لا. بل يُظهر أن الإعدادات العامة تبدو صحيحة. أما الثغرات من جهة الخادم، وأمان الحسابات، وأخطاء منطق الأعمال، فتحتاج إلى أنواع أخرى من الاختبار.

المصادر