PortlinePortlineالتوثيق

الأمان

القواعد الإحدى عشرة التي يفرضها Postgres، بلغة واضحة.

يتحقق التطبيق من الصلاحيات حتى تكون الواجهة منطقية. وتتحقق قاعدة البيانات منها مرة أخرى حتى تكون سارية فعلًا. كل قاعدة أدناه يفرضها Postgres (سياسات الأمان على مستوى الصفوف، أو صلاحيات الأعمدة، أو المشغّلات، أو قيود التحقق) ولها اختبار RLS يحاول كسرها، بما في ذلك عمليات كتابة يجب أن تفشل.

تسري هذه القواعد في الوضع المحلي وفي أي مكان آخر يعمل فيه Portline على قاعدة بياناته. وضع العرض التوضيحي ليست له قاعدة بيانات؛ فهو يطبّق القواعد نفسها داخل التطبيق.

  1. خطتك ليست لك لتعدّلها. الخطة والحالة والمقاعد ونهاية الفترة لا يكتبها إلا دور الخدمة. المالك الذي يشغّل update pl_subscriptions set plan = 'scale' يحصل على خطأ.
  2. الأقسام المقفلة لا تُظهر شيئًا. إذا لم تتضمن الخطة قسمًا ما، فلا تُرجَع صفوفه. مساحة عمل Starter تقرأ صفرًا من مواعيد الأرصفة، وليس صفحة خطأ تختبئ خلفها البيانات.
  3. المشاهدون لا يكتبون شيئًا. كل عملية إدراج وتحديث تتحقق من مستوى التعديل. ويُرفض إدراج مُشاهد لموعد رصيف.
  4. مراجعات المستندات تحتاج إلى صلاحيات الاعتماد، وتكون موقّعة. لا يستطيع التحقق من مستند أو رفضه إلا المسؤولون والمالك، وتختم قاعدة البيانات المراجعة بمعرّف المستدعي. يفشل منسّق النقل الذي يضبط مستندًا على "متحقَّق منه"؛ وعندما يفعل ذلك مسؤول، يُضبط reviewed_by على ذلك المسؤول بغض النظر عمّا أُرسل.
  5. الإشعارات لا يمكن إلا وسمها كمقروءة. يمكنك ضبط read_at على إشعاراتك الخاصة ولا شيء غير ذلك. وتُرفض إعادة كتابة عنوان إشعار أو رابطه.
  6. سجل التدقيق لا يمكن تزويره أو تعديله. تُكتب صفوف التدقيق باسم المستدعي فقط، ولا يستطيع أحد تحديثها أو حذفها.
  7. لا أحد يرقّي نفسه. لا يمكنك تغيير دورك بنفسك، ولا يصبح أحد مالكًا عبر التطبيق، ولا يستطيع المسؤولون المساس بالمالك. ولا يستطيع منسّق النقل تغيير دور أي شخص.
  8. مساحات العمل معزولة. كل سياسة مبنية على العضوية. عضو مساحة عمل يقرأ صفرًا من صفوف مساحة عمل أخرى.
  9. مساحة العمل المنقضي اشتراكها للقراءة فقط. تتطلب التعديلات اشتراكًا بحالة active أو trialing أو grace. وبعد الانقضاء تفشل كل عملية كتابة.
  10. لا يستطيع السائق تسجيل المغادرة قبل تسجيل الوصول. يتطلب قيد تحقق وجود وقت تسجيل وصول قبل وقت تسجيل المغادرة، وأن تكون المغادرة بعده.
  11. تُنشر الرسائل باسمك. يجب أن يكون كاتب الرسالة هو المستدعي. والنشر باسم شخص آخر يفشل.

في التطبيق أيضًا

  • كل إجراء على الخادم يتحقق من صحة مدخلاته ويعيد التحقق من مستوى الصلاحية قبل المساس بالبيانات.
  • عمليات إعادة التوجيه بعد تسجيل الدخول لا تذهب إلا إلى مسارات على الموقع نفسه، لذا لا يستطيع رابط ?next= مُعدّ خصيصًا أن يرسلك إلى مكان آخر.
  • أي عنوان URL صادر قد يقدّمه مستخدم (webhooks، ونقاط نهاية الناقلين) يمر عبر حارس يرفض العناوين غير https والخاصة والداخلية.
  • يرفض وضع العرض التوضيحي البدء في بيئة الإنتاج ولا يرسل أي طلبات صادرة.

في هذه الصفحة