cheemly

حماية العمل الكيميائي

نظرة عامة على الأمان

كثيرًا ما يتعامل العمل الكيميائي مع بُنى غير منشورة، وملاحظات مختبر، وتركيبات، ومواد تعليمية، وسجل مشاريع خاص. تلخّص هذه الصفحة التدابير التقنية والتنظيمية (المادة 32 من GDPR) التي نستخدمها لحماية مساحة العمل، وكيف نريد أن تتواصل معنا إذا وجدت شيئًا فاتنا.

حُدّث في 9 أكتوبر 2026 · توضيح محاسبة الاستخدام

01

حماية الحساب

يستخدم تسجيل الدخول Supabase Auth (GoTrue) مع جلسات JWT. تُخزَّن الرموز في ملفات تعريف ارتباط HTTP-only وSecure وSameSite عبر عميل Supabase SSR. ويستخدم تسجيل الدخول عبر Google أو Apple بروتوكول OAuth 2.0 / OIDC؛ ولا نرى أبدًا كلمات مرور المزوّدين.

تُجزَّأ كلمات المرور (عند التسجيل بالبريد/كلمة المرور) باستخدام bcrypt بالتكلفة الموصى بها في القطاع. ولا نسجّل كلمات المرور النصية أو ننقلها أبدًا.

قد تتطلب الإجراءات الحساسة (تغيير كلمة المرور، وحذف الحساب) إعادة المصادقة أو رمزًا لمرة واحدة عبر البريد الإلكتروني. ويؤدي النشاط المشبوه إلى تقييد المعدل وقد يؤدي إلى مراجعة الحساب.

02

حماية البيانات أثناء النقل وفي حالة السكون

كل الحركة العامة عبر HTTPS فقط. الموقع التسويقي وتطبيق الويب: يُنهى TLS عند حافة Vercel وCloudflare. API والمصادقة: يُنهى TLS عند الوكيل العكسي Caddy لدينا باستخدام شهادات Let’s Encrypt المؤتمتة؛ وتعمل Cloudflare كوكيل في المقدمة (وضع Full Strict).

HSTS الصارم مفعّل مع max-age بنمط preload، وتُرسل ترويسات X-Content-Type-Options وReferrer-Policy وPermissions-Policy في الاستجابات التي نقدمها.

تقيم البيانات في حالة السكون على وحدات تخزين Hetzner مشفّرة في ألمانيا. ويتطلب الوصول إلى قاعدة البيانات بيانات اعتماد مصادَق عليها بأدنى الصلاحيات اللازمة.

تُخزَّن الملفات التي يرفعها المستخدمون في حاوية Supabase Storage خاصة؛ والروابط الموقّعة قصيرة الأجل ومقيّدة بمساحة عمل المستخدم الطالب.

03

عزل الشبكة والبنية التحتية

يعمل خادم الإنتاج (Hetzner، فالكنشتاين) بنظام Ubuntu LTS مع UFW مضبوط لرفض كل الحركة الواردة افتراضيًا؛ ولا يمكن الوصول علنًا إلا إلى المنافذ 22 (SSH) و80 و443. ويعمل SSH بالمفاتيح فقط.

ترتبط الخدمات الداخلية (PostgreSQL، والتضمينات، وDECIMER، وSupabase) بالعنوان 127.0.0.1 داخل حاوياتها، ولا تصل إليها الخدمات الأخرى إلا عبر شبكة Docker جسرية خاصة؛ وهي غير مكشوفة للإنترنت العام.

يوجّه الوكيل العكسي (Caddy 2) النطاق api.cheemly.com إلى NestJS API والنطاق auth.cheemly.com إلى بوابة Supabase Kong. وتقع Cloudflare في المقدمة لتخفيف هجمات DDoS والتصفية على الحافة.

تُسحب صور الحاويات من GitHub Container Registry؛ ويتم النشر عبر سير عمل GitHub Actions موقّع يدفع الصور ويشغّل `docker compose up -d` بشكل مضبوط على الخادم.

04

الأمان على مستوى التطبيق

يُفرض فصل مساحات العمل على مستوى التطبيق: كل طلب API يتطلب JWT صالحًا من Supabase، ويُستخرج معرّف المستخدم على الخادم، وتُصفّى استعلامات قاعدة البيانات بذلك المعرّف بحيث لا يصل المستخدمون إلا إلى محادثاتهم وملفاتهم وتضميناتهم ومراجعهم وجلسات دراستهم وتقاريرهم.

قائمة السماح لـ CORS مقيّدة بـ https://cheemly.com (الإنتاج) والأصل التسويقي المضبوط.

يُتحقق من المدخلات باستخدام class-validator (NestJS DTOs) وPydantic (FastAPI)، مما يمنع فئات عديدة من الحقن.

تقيم الأسرار خارج نظام التحكم بالمصدر في ملفات بيئة مقيّدة بالمستخدم root على خادم الإنتاج، بصلاحية ملف 600. ومفتاح نشر GitHub Actions مقيّد بجهاز الإنتاج الافتراضي وقابل للتدوير.

05

التحقق الكيميائي — بوابة Critic

تمر كل إجابة كيميائية عبر فحص Python حتمي قبل أن تصل إلى المستخدم: تُحلَّل SMILES باستخدام RDKit، وتُوازَن أعداد الذرات في التفاعلات، وتُمرَّر أسماء IUPAC ذهابًا وإيابًا عبر OPSIN، وتُحدَّد الاستشهادات مقابل واجهات API العلمية المفتوحة.

إذا فشلت البوابة، يُعاد طلب الإجابة أو تُوسم بثقة منخفضة؛ ولا نقدّم بصمت بنية متوهَّمة.

البُنى المرسومة بفن ASCII محظورة بقاعدة في الطلب ويكشفها Critic؛ ويُجبَر النموذج على إعادة توليد بنية حقيقية معروضة بـ RDKit.

06

المدفوعات

تتولى Stripe، وهي جهة معالجة حاصلة على شهادة PCI-DSS المستوى 1، جميع تفاصيل الدفع (رقم البطاقة، وCVC، وبيانات الاعتماد المصرفية). ولا يخزّن Cheemly سوى حالة الاشتراك، والخطة، وبيانات الفواتير الوصفية، ومعرّفات العميل/الاشتراك في Stripe.

يُتحقق من أحداث Webhook الواردة من Stripe باستخدام سر توقيع Webhook قبل معالجتها. وتُسجَّل مطابقة الفوترة لأغراض التدقيق.

07

المراقبة والتسجيل والتدقيق

تغطي السجلات التشغيلية الأخطاء وزمن الاستجابة والمهام الفاشلة وأحداث المصادقة ومحاسبة الحصة. وتُقلَّل البيانات الشخصية في السجلات إلى الحد الأدنى؛ ولا تُسجَّل نصوص الطلبات الكاملة ومحتويات الملفات بشكل روتيني.

تخزّن أحداث المصادقة عنوان IP ووكيل المستخدم وبصمة جهاز محلَّلة لمساعدة المستخدمين على مراجعة «أين سجّلت الدخول».

نحتفظ بسجل نشاط داخلي للأحداث ذات الصلة بالأمان (تسجيل الدخول، وتسجيل الخروج، وتغيير كلمة المرور، ورفع الملفات، وإنشاء المحادثات، وتغيير الخطة). ويمكن للمستخدمين طلب نسخة من سجل نشاطهم عبر [email protected].

08

النسخ الاحتياطي والاستعادة والاستمرارية

يُنسخ PostgreSQL احتياطيًا وفق جدول تدوير يومي. والنسخ الاحتياطية مشفّرة وتُحفظ في وحدة تخزين Hetzner منفصلة.

هدف زمن الاستعادة (RTO): 4 ساعات لاستعادة قاعدة البيانات بالكامل. هدف نقطة الاستعادة (RPO): 24 ساعة.

نُجري تدريبات استعادة دورية ونشغّل بيئة تجهيز منفصلة للاختبارات غير المدمّرة.

09

ضمانات الذكاء الاصطناعي وسير العمل

يُمنح كل وكيل طلبًا يتضمن ضوابط حماية: لا يكشف Moll أبدًا اسم النموذج الأساسي أو مزوّده، ويرفض الطلبات خارج نطاقه، ويرفض سير العمل المخالف لسياسة الاستخدام المقبول.

يتطلب وضع البحث المعمّق تأكيدًا صريحًا من المستخدم قبل التنفيذ؛ ويجري التخطيط والاسترجاع والتركيب على مراحل يمكن للمستخدم مراقبتها وإيقافها.

تُفرض الحصة على الخادم؛ ولا يمكن للعملاء تجاوز المقياس.

010

الاستجابة للحوادث

نتبع عملية موثّقة للاستجابة للحوادث: الكشف، والاحتواء، والاستئصال، والاستعادة، والإخطار، وإجراء مراجعة لاحقة للحادث.

حيث يُحتمل أن يشكّل اختراق البيانات الشخصية خطرًا على حقوق المستخدمين، نخطر السلطة الرقابية المختصة خلال 72 ساعة (المادة 33 من GDPR)، وحيث يكون الخطر مرتفعًا، نخطر المستخدمين المتأثرين دون تأخير غير مبرر (المادة 34 من GDPR). ونطبّق على المادة 12(5) من KVKK هدف الـ 72 ساعة نفسه.

تتضمن الإشعارات ما حدث، والبيانات المعنية، والإجراءات المتخذة، والخطوات الموصى بها للمستخدم.

011

الإفصاح المسؤول

نرحب بالباحثين الأمنيين. يُرجى مراسلة [email protected] مع خطوات إعادة الإنتاج، والروابط المتأثرة، وتقييم الأثر، ومعلومات التواصل. كما يُنشر ملخص قابل للقراءة آليًا في /.well-known/security.txt.

يُرجى عدم الوصول إلى بيانات المستخدمين الآخرين أو تعديلها أو حذفها أو تسريبها؛ وعدم إجراء اختبارات مدمّرة أو إرسال رسائل مزعجة أو تصيّد أو هندسة اجتماعية أو هجمات حجب الخدمة. سنؤكد استلام البلاغات الصحيحة خلال 5 أيام عمل ونسعى إلى معالجة المشكلات الحرجة خلال 30 يومًا. لا نشغّل حاليًا برنامج مكافآت مدفوعًا؛ وسننسب الفضل للباحثين في ملاحظات الإصدار عند الطلب.

لن نتخذ إجراءً قانونيًا بشأن الأبحاث التي تُجرى بحسن نية بموجب هذه السياسة.

012

وضع الامتثال

صُمّم Cheemly ليتوافق مع التزامات GDPR وUK GDPR وKVKK التركي وFADP السويسري وCCPA/CPRA ذات الصلة بمشغّل منتج ذكاء اصطناعي صغير.

لا نحمل حاليًا شهادات SOC 2 أو ISO 27001 أو HIPAA. ويمكن لعملاء المؤسسات الذين يحتاجون إلى شهادات رسمية من أطراف ثالثة مناقشة احتياجاتهم مع [email protected].

إذا كنت تحتاج إلى اتفاقية معالجة بيانات، أو تصدير قائمة المعالجين الفرعيين، أو رد على استبيان أمني، أو تقييم لأثر النقل، فيُرجى التواصل عبر [email protected].

للتواصل: [email protected] · [email protected] · [email protected]

تراخيص النماذج والإسناد