ForHosting KIT · أدوات المطورين

فحص Secure وHttpOnly وSameSite في ملفات الارتباط

يعتمد أمان ملف تعريف الارتباط على سمات صغيرة قد تُحذف بسهولة عند تغيير الإعدادات.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

تقرأ هذه الأداة قيمة واحدة من ترويسة Set-Cookie، وتتأكد من أنها تبدأ باسم وقيمة، ثم تبين وجود Secure وHttpOnly وSameSite. كما تعيد قائمة واضحة بالسمات الناقصة، مما يسهل استخدامها في المراجعات وعمليات النشر والاختبارات ومسارات CI. الفحص حتمي، ولا يميز بين حالة الأحرف في أسماء السمات، ولا ينفذ أي طلب عبر الشبكة.

ما الذي تفحصه الأداة

ألصقوا قيمة ترويسة استجابة Set-Cookie واحدة تبدأ باسم ملف تعريف الارتباط وقيمته. تفصل الأداة زوج name=value الأول عن السمات اللاحقة المفصولة بفواصل منقوطة، ثم تبحث عن Secure وHttpOnly وSameSite بصرف النظر عن حالة الأحرف. تتضمن النتيجة قيمة منطقية لكل وسيلة حماية، وقائمة مرتبة بالسمات الناقصة، والملخص `all_present`. لذلك تصلح النتيجة للمراجعة البشرية ولقواعد الإصدار الآلية. يقتصر الفحص على وجود السمات الثلاث، ولا يضمن سلامة نطاق الملف أو مدته أو تصميمه أو سلوك التطبيق ككل. ولهذا ينبغي اعتبار النتيجة المكتملة فحصًا محددًا للإعدادات، لا تدقيقًا شاملًا لأمان الويب.

كيفية تفسير كل سمة

تطلب Secure من العملاء المتوافقين إرسال ملف تعريف الارتباط عبر نقل آمن فقط. وتمنع HttpOnly شيفرة JavaScript العادية في جهة العميل من قراءة الملف عبر واجهات المتصفح الشائعة، فتقلل طرق استخراج رمز الجلسة. أما SameSite فتتحكم في تضمين المتصفح للملف ضمن سياقات الطلبات المختلفة بين المواقع، وتستخدم غالبًا ضمن وسائل الحماية من تزوير الطلبات. تبلغ الأداة عن وجود السمة، لكنها لا تختار سياسة SameSite المناسبة، لأن Strict وLax وNone تلبي احتياجات مختلفة. قد يحتاج تكامل بين المواقع، مثلًا، إلى SameSite=None مع Secure. قيّموا النتائج وفق غرض الملف وحساسية المصادقة ودعم المتصفحات وتدفقات العمل المتوقعة بين المواقع.

الاستخدام في التطوير ومسارات CI

شغّلوا الفحص على قيم Set-Cookie نموذجية مأخوذة من اختبارات التطبيق أو إعداد الوكيل العكسي أو مخرجات إطار العمل. يمكنكم في اختبار آلي إيقاف عملية البناء عندما تكون `all_present` خاطئة، أو تطبيق سياسة أدق بقراءة القيم المنطقية الثلاث وقائمة `missing_attributes`. ولأن المحلل حتمي ولا يستخدم الشبكة، تنتج المدخلة نفسها النتيجة المنظمة نفسها في المتصفح وعبر API. أرسلوا ترويسة واحدة فقط في كل طلب، لأن جمع عدة ترويسات Set-Cookie يسبب التباسًا. تُرفض المدخلة التي لا تبدأ بزوج name=value بوصفها غير صالحة. وبعد تعديل الإعداد، أعيدوا اختبار الاستجابة الفعلية، إذ قد تغير البرمجيات الوسيطة أو الوكيل أو CDN أو مكون المصادقة السمات.

مراجعة ملفات تعريف ارتباط المصادقة

افحصوا ملف جلسة صادرًا عند تسجيل الدخول وحددوا فورًا أي سمة ناقصة من سمات الحماية الثلاث.

إضافة قاعدة أمان إلى CI

مرروا إلى API قيمة Set-Cookie مأخوذة من اختبار تكامل، وأوقفوا المسار عندما تكون `all_present` خاطئة.

التحقق من تغييرات الوكيل

قارنوا الترويسات بعد تغيير الوكيل العكسي أو CDN لاكتشاف سمة فُقدت أثناء إعادة الكتابة.

ما تكلفة الفحص؟

تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن تشغيل نسخة المتصفح محليًا دون إرسال الترويسة إلى خدمة شبكية.

هل تتحقق الأداة من قيمة SameSite؟

لا. تبين الأداة وجود SameSite فقط. ويتوقف الاختيار بين Lax وStrict وNone على سلوك التطبيق المطلوب بين المواقع.

هل تتأثر أسماء السمات بحالة الأحرف؟

لا. تتعرف الأداة على Secure وHttpOnly وSameSite مهما اختلفت حالة الأحرف.

هل يمكنني فحص عدة ترويسات Set-Cookie معًا؟

لا. أرسلوا قيمة Set-Cookie واحدة في كل طلب للحصول على نتيجة واضحة لكل ملف تعريف ارتباط.

لماذا رُفضت مدخلتي؟

يجب أن تبدأ القيمة باسم غير فارغ لملف تعريف الارتباط، ثم علامة مساواة وقيمته، قبل السمات المفصولة بفواصل منقوطة.

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

POSThttps://api.kit.forhosting.com/security/cookie-attribute-check

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/security/cookie-attribute-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"}'
{
  "text": "session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.cookie_attribute_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

اطّلع على توثيق KIT الكامل ←