هذه الترجمة للتيسير. وعند اختلافها عن الإنجليزية، فالنصّ الإنجليزي هو المُعتمَد.
الأمان
وصف للضوابط التي تطبّقها المنصّة فعلاً، حتى يمكن التحقّق منها بدل افتراضها.
التحقّق من الهوية
- كلمات المرور مُبصمَة بـscrypt مع مِلح خاص بكل مستخدم.
- يقارن تسجيل الدخول ببصمة صوريّة حين يكون العنوان مجهولاً، فيستغرق الفشل الوقت نفسه سواء أكان الحساب موجوداً أم لا.
- الجلسات رموز عشوائية مبهمة في ملفّ تعريف ارتباط httpOnly بخاصية SameSite=Lax (وSecure في الإنتاج). ولا يُخزَّن على الخادم إلا بصمة SHA-256.
- تغيير كلمة المرور أو إعادة تعيينها يُلغي كل جلسة على كل جهاز.
- رموز التحقّق وإعادة التعيين تُستعمل مرّة واحدة، ومُبصمَة عند التخزين، وتنتهي صلاحيتها (٢٤ ساعة وساعة واحدة على التوالي).
- تسجيل الدخول بغوغل يتحقّق من معامل حالة CSRF، ويرفض ربط عنوان غوغل غير موثَّق بحساب قائم.
الصلاحيات
- تحكّم بالوصول قائم على الأدوار بجدول صلاحيات، لا بمقارنات أدوار متناثرة. والأدوار: USER وAGENT_BUILDER وSUPPORT وMANAGER وADMIN وSUPER_ADMIN.
- كل استعلام يقرأ بيانات عميل مقيَّد بمعرّف المستخدم، فمعرّفٌ من حساب آخر يُفضي إلى 404 لا إلى تسريب.
- مسارات الإدارة تفحص الصلاحية المحدّدة التي تحتاجها، مستقلّةً عن التخطيط الذي يرسم الصفحة.
- لا يستطيع أحد تغيير دوره أو حالته، ولا منح دور أعلى من رتبته.
حماية الطلبات
- CSRF: التعديلات المُوثَّقة بملفّ تعريف الارتباط تتطلّب تطابق Origin ورمزاً مزدوج الإرسال.
- تحديد معدّل على تسجيل الدخول، والتسجيل، وإعادة تعيين كلمة المرور، وتشغيل الوكلاء، والنماذج العامة، والـwebhooks.
- التحقّق من المُدخَلات بـZod عند كل حدّ برمجي. والمُدخَل غير الصالح يعيد أخطاءً على مستوى الحقل، لا أثر خطأ برمجياً.
- الوصول إلى قاعدة البيانات يمرّ عبر Prisma باستعلامات مُعامَلة؛ ولا يوجد SQL مبنيّ بالنصوص.
- الطلبات الصادرة من الوكلاء وعقد سير العمل ترفض العناوين المحليّة ونطاقات الشبكات الخاصة، فتُغلق ثغرة SSRF.
الأسرار
- اعتمادات التكاملات ورموز OAuth مشفَّرة بـAES-256-GCM قبل التخزين ولا تُرسَل إلى متصفّح أبداً.
- مفاتيح الواجهة البرمجية تُخزَّن كبصمات SHA-256. والمفتاح الخام يظهر مرّة واحدة بالضبط، في ردّ الإنشاء.
- مفاتيح مزوّدي النماذج تعيش في متغيّرات بيئة الخادم وحدها. وكل نداءات النماذج تجري على الخادم.
- السجلّات تمرّ عبر مرشّح حجب يزيل الحقول التي تبدو اعتمادات.
تشغيل الوكلاء
- الأدوات تعلن مستوى مخاطرتها: READ أو WRITE أو DESTRUCTIVE. وكل إصدار وكيل يعلن أعلى مستوى يجوز له تنفيذه تلقائياً.
- أي نداء فوق ذلك السقف يُرفَض، ويُسجَّل بانتظار الموافقة، ويُبلَّغ النموذج بأنه لم يُنفَّذ.
- التشغيلات محدودة بعدد الخطوات، وميزانية الرموز، ومهلة زمنية.
- كل خطوة تُحفَظ بمُدخَلها ومُخرَجها ومدّتها ومستوى مخاطرتها.
المدفوعات
- برومِيفو لا يرى بيانات البطاقات ولا يخزّنها. وبادل يتولّاها من طرفها إلى طرفها.
- تواقيع الـwebhook تُتحقَّق قبل قراءة الحمولة كبيانات.
- كل حدث يُحفَظ تحت قيد فريد، فإعادة الإرسال تُعرَف وتُتخطّى بدل أن تُطبَّق مرّتين.
- الصلاحيات لا يمنحها إلا معالج الـwebhook، لا تحويلُ نجاحٍ من جانب العميل.
الإبلاغ عن ثغرة
تواصل معنا مع خطوات إعادة إنتاج الثغرة. ونرجو أن تمنحنا مهلة معقولة لإصلاحها قبل الإفصاح عنها علناً.