مدقق مجاني لأمان الموقع
افحص كيف يحمي موقعك زواره: HTTPS وإعادة التوجيه من http إلى https، وشهادة SSL/TLS، وقيم ترويسات الأمان، وخصائص ملفات تعريف الارتباط، وCORS، والمحتوى المختلط. إنه فحص سلبي للإعدادات وللقراءة فقط، لا يرسل إلا طلبات GET وHEAD عادية — وليس اختبار اختراق.
ما الذي تفحصه هذه الأداة
HTTPS وعمليات إعادة التوجيه
هل تنتهي الصفحة على https:// بعد عمليات إعادة التوجيه، والخطوات في الطريق، وهل يستجيب http://yourdomain/ بإعادة توجيه دائمة (301 أو 308) إلى HTTPS.
شهادة SSL/TLS
ما إذا كانت الشهادة موثوقة وتطابق نطاقك، وإصدار TLS المستخدم، والجهة التي أصدرتها، وعدد الأيام المتبقية حتى انتهائها.
قيمة HSTS
تُحلَّل ترويسة Strict-Transport-Security ولا يُكتفى باكتشافها: قيمة max-age لا تقل عن 180 يومًا، وعدم وجود توجيهات تالفة، وincludeSubDomains، وهل علامة preload مدعومة بالإعدادات التي تتطلبها قائمة preload.
توجيهات Content-Security-Policy
يُقرأ كل توجيه: هل النصوص البرمجية مقيّدة أصلًا، و'unsafe-inline' (لا يُشار إليه عند استخدام nonce أو تجزئة)، و'unsafe-eval'، والمصادر الواسعة مثل * أو https: أو data: في script-src، وobject-src، وbase-uri، وهل السياسة بوضع Report-Only فقط.
الحماية من clickjacking
X-Frame-Options (بما في ذلك القيم غير الصالحة وALLOW-FROM المتقادمة)، أو قاعدة CSP frame-ancestors ليست * ولا مخططًا مجردًا.
ترويسات حماية أخرى
يجب أن تكون X-Content-Type-Options مضبوطة على nosniff بالضبط؛ وتُفحص Referrer-Policy بحثًا عن unsafe-url والقيم غير المعروفة؛ وPermissions-Policy بحثًا عن الميزات المتروكة مفتوحة. وتُدرج ترويسات العزل عبر الأصول للعلم.
كشف الإصدارات وخرائط المصدر
ترويسات Server وX-Powered-By وX-AspNet-Version وX-AspNetMvc-Version وX-Generator التي تكشف أرقام الإصدارات، وخرائط المصدر العامة لما يصل إلى ثلاثة من نصوصك البرمجية.
خصائص ملفات تعريف الارتباط
ملفات تعريف الارتباط التي تضبطها استجابة الصفحة، بالاسم فقط: Secure على HTTPS، وHttpOnly على الملفات التي توحي أسماؤها بجلسة أو رمز مميز، وSameSite=None دون Secure، وغياب SameSite، والملفات المحددة لنطاق أب.
CORS
طلب إضافي واحد بترويسة Origin مختلقة وغير مؤذية (https://rudra-audit.invalid) لمعرفة هل يعيد خادمك أي أصل كما هو — وهل يسمح أيضًا ببيانات الاعتماد، وهو المزيج الخطر.
المحتوى المختلط
نصوص برمجية أو أوراق أنماط أو إطارات عبر http:// في صفحة HTTPS (محتوى مختلط نشط)، وصور أو وسائط عبر http:// (سلبي).
security.txt
هل يوجد /.well-known/security.txt، وهل يتضمن سطر Contact وتاريخ Expires في المستقبل، ليعرف الباحثون كيف يتواصلون معك.
التقنيات والسطح المرئي
أُطر العمل والخدمات التي يمكن التعرف عليها من الترويسات وHTML، إضافةً إلى نماذج تسجيل الدخول، وعناوين URL الخاصة بـ API أو التوثيق المذكورة في الصفحة، والملفات العامة مثل robots.txt. تُدرج للعلم؛ ولا تكلّف أي نقاط.
أنماط من جهة العميل (مراجعة يدوية)
معالجات الأحداث المضمّنة مثل onclick، والنصوص البرمجية الخارجية المحمّلة دون Subresource Integrity. وهي تلميحات منخفضة الأولوية للمراجعة، لا ثغرات مؤكدة.
كيف يعمل الفحص
نرسل طلب GET عاديًا واحدًا إلى صفحتك، ونتتبع أي عمليات إعادة توجيه، ونقرأ الاستجابة: قيم الترويسات، وملفات تعريف الارتباط التي تضبطها (الأسماء والخصائص فقط)، وHTML. وإلى جانبه نُجري مجموعة صغيرة وثابتة من الطلبات للقراءة فقط: اتصال TLS للتحقق من الشهادة، وطلب GET واحد بترويسة Origin اختبارية غير مؤذية لفحص CORS، وطلبًا واحدًا إلى http://yourdomain/ لنرى كيف يعيد التوجيه، والملفات المسموح بها /.well-known/security.txt وrobots.txt وsitemap.xml وhumans.txt وملف manifest الذي ترتبط به صفحتك، و— لما يصل إلى ثلاثة من نصوصك البرمجية — نهاية الملف إضافةً إلى طلب HEAD لخريطة المصدر التي يذكرها.
لا يُرسَل أي شيء، ولا تُرسَل بيانات اعتماد، ولا تُستخدم حمولات هجومية، ولا تُخمَّن مسارات. وتُحظر الطلبات إلى عناوين الشبكات الخاصة أو الداخلية. وإذا استجابت الصفحة بخطأ خادم (5xx)، لا نحلّل ترويساتها، لأن صفحات الخطأ كثيرًا ما تختلف عن الموقع الحقيقي؛ فتُوسم تلك الفحوص بأنها لم تُشغَّل بدلًا من أنها فاشلة.
تبدأ النتيجة من 100 ويُدرج كل خصم في التقرير. عدم استخدام HTTPS يكلّف 40 نقطة، والشهادة غير الصالحة أو المنتهية 40، وفشل اتصال TLS 30، وCORS الذي يثق بأي أصل مع بيانات الاعتماد 25، وغياب ترويسة HSTS 15، وغياب CSP 12. وتكلّف الإعدادات الأضعف أقل — مثلًا غياب إعادة التوجيه من http إلى https 10، والمحتوى المختلط النشط 8، وCSP بوضع Report-Only فقط 8، ونصوص 'unsafe-inline' البرمجية 6، وملفات تعريف الارتباط دون Secure 6، وقيمة max-age قصيرة في HSTS 5. ولا تكلّف ملاحظات معلوماتية كثيرة شيئًا، مثل غياب security.txt، ولا تُخصم المشكلة نفسها مرتين أبدًا.
الأدلة التي ستراها
تُعرض كل ترويسة بقيمتها الفعلية وتقييم مبسّط (جيدة أو ضعيفة أو مفقودة)؛ وتتضمن ملاحظات CSP جدول التوجيهات بعد تحليلها؛ وتدرج ملاحظات ملفات تعريف الارتباط أسماءها وخصائصها، لا قيمها أبدًا؛ وتُظهر نتيجة CORS أصل الاختبار وما عاد. وتذكر كل ملاحظة ما توقعناه، وعنوان URL الذي تنطبق عليه، ومدى ثقة الفحص، ومصدرها — استجابة HTTP أو HTML أو اتصال TLS.
ما لا تفحصه هذه الأداة
إنه ليس اختبار اختراق
لا استغلال، ولا حمولات هجومية، ولا هجمات تخمين، ولا تخمين للمسارات المخفية. إنه يقرأ الإعدادات التي يتلقاها أي متصفح.
الصفحات خلف تسجيل الدخول
لا نسجّل الدخول أبدًا ولا نرسل بيانات اعتماد، لذا لا تُختبر الصفحات التي تتطلب مصادقة ولا لوحات الإدارة ولا إعدادات الحساب.
شيفرتك واعتمادياتها
لا مراجعة للشيفرة على الخادم، ولا فحص للثغرات في نظام إدارة المحتوى أو الإضافات أو المكتبات أو برمجيات الخادم.
البرمجيات الخبيثة أو الموقع المخترق
لا يبحث عن البرمجيات الخبيثة أو تشويه الصفحات أو حقن الرسائل المزعجة أو الحسابات المسرّبة.
كل ملف تعريف ارتباط يستخدمه موقعك
لا تُرى إلا ملفات تعريف الارتباط التي تضبطها استجابة الصفحة نفسها — لا تلك التي تضيفها JavaScript لاحقًا أو الصفحات الأخرى أو الجهات الخارجية. ولا تُقرأ قيم ملفات تعريف الارتباط أبدًا.
كيف تتصرف نماذجك
تُرصد النماذج لكنها لا تُرسَل أبدًا، لذا لا يمكن اختبار التحقق على الخادم ولا الحماية من CSRF ولا تحديد معدل الطلبات.
مشكلات شائعة نكتشفها
HSTS مفقودة أو قصيرة جدًا
أمر شائع جدًا، حتى في المواقع التي تعيد توجيه كل شيء إلى HTTPS — وقيمة max-age من بضع دقائق، متبقية من الاختبار، لا توفر أي حماية تقريبًا.
لا توجد CSP، أو توجد سياسة تسمح بالكثير
الترويسة الأكثر غيابًا. وعندما تكون موجودة، كثيرًا ما تُبطل 'unsafe-inline' أو 'unsafe-eval' أو * في script-src معظم حمايتها.
لا توجد حماية من clickjacking
لا توجد X-Frame-Options ولا قاعدة frame-ancestors.
شهادات قريبة الانتهاء
عادةً لأن التجديد التلقائي توقف عن العمل بعد تغيير في الخادم أو DNS.
إصدار الخادم مكشوف
ترويسات مثل «Server: Apache/2.4.41» أو «X-Powered-By: PHP/7.4» تخبر المهاجمين بما يبحثون عنه.
HTTP لا يعيد التوجيه
لا يزال http://yourdomain/ يقدّم الصفحات، أو يعيد التوجيه مؤقتًا فقط (302)، فيستطيع الزوار الذين يكتبون النطاق المجرد التصفح دون تشفير.
ملفات تعريف ارتباط للجلسة دون Secure أو HttpOnly
ملفات تعريف ارتباط لتسجيل الدخول أو الجلسة تستطيع النصوص البرمجية قراءتها، أو قد تُرسل عبر HTTP غير المشفّر.
كيفية إصلاحها
اضبط الترويسات حيث يُقدَّم موقعك
تُضبط الترويسات في خادم الويب (Nginx add_header، Apache Header set)، أو في شبكة CDN، أو في إعدادات الاستضافة أو ملف الترويسات لديها. أعد تشغيل الفحص للتأكد من القيمة التي تصل فعلًا إلى المتصفحات.
فعّل HSTS بعد أن يعمل HTTPS في كل مكان
استخدم Strict-Transport-Security: max-age=31536000 (180 يومًا هي الحد الأدنى الذي نقبله). ولا تضف includeSubDomains إلا عندما تدعم كل النطاقات الفرعية HTTPS، واجعل preload آخر خطوة.
شدّد CSP تدريجيًا
ابدأ بـ Content-Security-Policy-Report-Only، ثم انتقل إلى التطبيق الفعلي. استبدل 'unsafe-inline' بقيم nonce أو التجزئات، واحذف 'unsafe-eval'، واذكر مصادر النصوص البرمجية بدقة بدلًا من * أو https:، وأضف object-src 'none' وbase-uri 'self'.
أضف الترويسات البسيطة
نادرًا ما تتسبب X-Content-Type-Options: nosniff وReferrer-Policy: strict-origin-when-cross-origin وX-Frame-Options: DENY (أو SAMEORIGIN) في تعطيل أي شيء.
اجعل تجديد الشهادة وإعادة التوجيه تلقائيين
استخدم الشهادات المُدارة أو Let's Encrypt مع التجديد التلقائي، وأعد توجيه كل طلب http:// بـ 301 أو 308 إلى عنوان https:// نفسه.
أخفِ أرقام الإصدارات
عطّل رموز الإصدار (مثل server_tokens off في Nginx، وexpose_php = Off في PHP)، ولا تنشر خرائط المصدر في بيئة الإنتاج إلا إذا كنت تقصد ذلك.
اضبط خصائص ملفات تعريف الارتباط
امنح كل ملف تعريف ارتباط الخاصية Secure في موقع HTTPS، وأضف HttpOnly إلى ملفات الجلسة وتسجيل الدخول، واضبط SameSite=Lax (أو Strict) صراحةً. وتحتاج SameSite=None دائمًا إلى Secure.
الأسئلة الشائعة
هل هذا اختبار اختراق أو فحص للثغرات؟
لا. إنه يقرأ الإعدادات التي يتلقاها أي متصفح — HTTPS والشهادة وقيم الترويسات وخصائص ملفات تعريف الارتباط وCORS — باستخدام طلبات GET وHEAD عادية فقط. ولا يحاول العثور على الثغرات أو استغلالها. ولذلك، استعن بمختبر أمان مؤهل وامنحه إذنًا مكتوبًا.
هل يمكنه إخباري إن كان موقعي قد اختُرق؟
لا. فهو لا يبحث عن البرمجيات الخبيثة أو الصفحات المشوّهة أو الحسابات المخترقة. والنتيجة الجيدة تعني أن الأجزاء المرئية من أمان النقل والمتصفح مضبوطة جيدًا — لا أن الموقع آمن من كل النواحي.
هل يقيّم جودة ترويساتي؟
نعم، للترويسات الرئيسية. تُفحص HSTS للتأكد من أن max-age لا تقل عن 180 يومًا ومن عدم وجود توجيهات تالفة؛ وتُحلَّل CSP توجيهًا بتوجيه بحثًا عن 'unsafe-inline' و'unsafe-eval' ومصادر النصوص البرمجية الواسعة وغياب object-src أو base-uri؛ كما يُتحقق من قيم X-Frame-Options وX-Content-Type-Options وReferrer-Policy.
لماذا لا يُفحص HSTS في موقعي الذي يعمل على HTTP؟
لا يكون لـ HSTS أي أثر إلا عبر HTTPS. وإذا لم يكن موقعك على HTTPS، فهذه هي المشكلة الأكبر، ويُبلَّغ عنها بدلًا منه.
هل يمكن أن تؤدي إضافة ترويسات الأمان إلى تعطيل موقعي؟
معظم الترويسات آمنة الإضافة. لكن Content-Security-Policy قد تحظر نصوصًا برمجية أو أنماطًا أو عناصر مضمّنة يعتمد عليها موقعك، لذا اختبرها بوضع report-only أولًا. وقد تؤثر إضافة Secure أو SameSite إلى ملفات تعريف الارتباط في عمليات تسجيل الدخول الممتدة عبر عدة نطاقات، لذا اختبر تسجيل الدخول بعد ذلك.
هل فحص CORS آمن لموقعي؟
نعم. إنه طلب GET عادي واحد يحمل ترويسة Origin لنطاق لا يمكن أن يوجد (rudra-audit.invalid). لا تُرسل ملفات تعريف ارتباط ولا بيانات اعتماد ولا يتغير شيء؛ نقرأ فقط ترويسات CORS التي تعود.
لماذا تُوسم بعض الملاحظات بأنها تحتاج إلى مراجعة يدوية؟
قد تكون أنماط مثل معالجات onclick المضمّنة أو النصوص البرمجية دون Subresource Integrity سليمة أو خطرة بحسب السياق. لذا نشير إليها بثقة منخفضة لتقرر بنفسك، بدلًا من تقديمها على أنها مشكلات مؤكدة.
أدلة مفيدة
- How to check your website's security: what a passive check can and can't tell youWhat you can safely check about your own site's security in an afternoon, what a passive scanner actually looks at, and where you need a person instead.اقرأ الدليل
- What are security headers? What each one does and how to add themSecurity headers switch on protections built into every browser. What each one does, safe starting values, and how to add them on common servers and platforms.اقرأ الدليل
- Content-Security-Policy explained: directives, unsafe-inline, nonces and a safe rolloutCSP is the most powerful security header and the easiest to get wrong. The directives that matter, how nonces and hashes replace 'unsafe-inline', and a rollout plan that won't break your site.اقرأ الدليل
- How to check cookie security: Secure, HttpOnly, SameSite and cookie prefixesSession cookies are keys to your visitors' accounts. How each cookie attribute protects them, how to inspect your own cookies, and how to set them correctly.اقرأ الدليل
أدوات مجانية ذات صلة
- تدقيق الموقعافحص صفحة واحدة بحثًا عن مشكلات SEO والسرعة والجوال وإمكانية الوصول والأمان والروابط المعطّلة والخادم في تقرير واحد.افتح تدقيق الموقع
- مختبِر APIأرسل طلبًا إلى أي نقطة نهاية API عامة واطّلع على رمز الحالة وزمن الاستجابة وما إذا نجح الطلب.افتح مختبِر API
- مدقق SEOافحص عنوان صفحتك ووصفها وعناوينها الفرعية وأوصاف الصور وعنوان URL الأساسي (canonical) وrobots.txt وخريطة الموقع.افتح مدقق SEO
تفضّل أن يصلحها أحد نيابةً عنك؟
هذه الفحوص مجانية وكذلك الأدلة. وإذا كنت تفضّل أن يُجري شخص التغييرات، يقدم فريقنا مساعدة مدفوعة.