4.2الأمان وحقوق المستخدمين وGroupware Utilisateur
الأساسي في 30 ثانية
- Groupware Utilisateur في WinDev يوفّر جاهزًا المصادقة وإدارة المستخدمين والمجموعات والحقوق حتى مستوى النوافذ والحقول — مكسب كبير مقارنة بتطوير مخصّص.
- القاعدة الذهبية: أقل صلاحية — لكل فرد الحقوق الضرورية فقط؛ نعمل بالمجموعات (ملفات مهنية) ولا نخزّن كلمة المرور أبدًا بشكل صريح (بصمة/تجزئة).
- ⚠️ أمان الواجهة لا يكفي: إخفاء زر لا يمنع الوصول إلى البيانات بطريقة أخرى — يجب تأمين جهة البيانات أيضًا (حقوق HFSQL Client-Serveur، قيود)، وتتبّع العمليات الحساسة، وحماية النسخ الاحتياطي.
حالة مصغّرة متسلسلة — ياسين يُحكم حقوق تجارته
ياسين، مطوّر WinDev في شركة صغيرة لتجارة المعدات الكهربائية في وهران، يجب أن يهيّئ التطبيق للنشر في الإنتاج. اليوم يستطيع الجميع فعل كل شيء: أمين المخزن يمكنه الموافقة على خصم، والمندوب يمكنه حذف فاتورة. يفعّل ياسين Groupware Utilisateur: ينشئ مجموعات تتبع الأدوار الحقيقية — مندوب، أمين مخزن، محاسب، مسؤول، مدير — ويطبّق أقل صلاحية، فلا تحصل كل مجموعة إلا على ما يلزمها. يعرف أن إخفاء زر في الواجهة لا يكفي: يؤمّن أيضًا جهة البيانات (حقوق HFSQL Client-Serveur) ويمركز القواعد التجارية في إجراءات كي تستفيد منها عمليات الاستيراد. يتتبّع العمليات الحساسة (من عدّل ماذا ومتى) لأغراض التدقيق، ويحمي النسخ الاحتياطي، ويحفظ كلمات المرور على شكل بصمة. ويسجّل العادة: نظام حقوق دقيق جدًا يصبح غير قابل للإدارة — وبالتالي غير آمن؛ نبدأ بسيطًا ثم نُدقّق حيث تكون الحاجة حقيقية.
حالة مستقلة لهذا القسم: تعود في الدرس والمخطط والسكريبت وتحدي 48 ساعة للقسم 4.2.
1. Groupware Utilisateur
أمان تطبيق إدارة يغطي أبعادًا عدة: من يستطيع الاتصال، ومن يرى ماذا، ومن يستطيع فعل ماذا، وكيف تُحمى البيانات. يوفّر WinDev Groupware Utilisateur، وهي وحدة مدمجة تقدّم جاهزًا مصادقة (معرّف/كلمة مرور)، وإدارة المستخدمين والمجموعات، والأهم تعريف الحقوق حتى مستوى النوافذ والحقول: مجموعة معيّنة لا ترى هذا الزر، وأخرى لديها هذا الحقل للقراءة فقط. هذا مكسب وقت كبير مقارنة بتطوير مخصّص، ويغطي الحاجة المعتادة لتطبيقات المؤسسة.
2. مبادئ الأمان
بغض النظر عن الأداة، نحترم بعض المبادئ. (1) أقل صلاحية: لكل فرد الحقوق الضرورية فقط — القاعدة الذهبية. (2) لا نخزّن كلمة مرور صريحة أبدًا: نحفظ بصمة (تجزئة). (3) أمان الواجهة لا يكفي: إخفاء زر لا يمنع الوصول إلى البيانات بطريقة أخرى — يجب تأمين جهة البيانات أيضًا (حقوق HFSQL Client-Serveur، قيود). (4) تتبّع العمليات الحساسة (من عدّل ماذا ومتى)، وهو ضروري للتدقيق والنزاعات. (5) تشفير ما يجب تشفيره وحماية النسخ الاحتياطي: نسخة احتياطية مسروقة تعني قاعدة البيانات كلها مسروقة.
3. المجموعات والبساطة والجانب القانوني
عمليًا، نعمل بـالمجموعات (ملفات مهنية) بدلًا من كل شخص على حدة: الوصول والمغادرة وتغيير المنصب تُحلّ بإسناد بسيط. نطبّق أقل صلاحية بقواعد بسيطة (استشارة / إنشاء-تعديل / حذف / موافقة / إدارة) ولا نضيف الدقة إلا حيث تكون الحاجة حقيقية: نظام حقوق معقّد جدًا ينتهي بإدارة فوضوية، وبالتالي غير آمن. أخيرًا، حماية البيانات الشخصية تخضع لالتزامات قانونية تختلف حسب البلد (RGPD في أوروبا، تشريعات محلية في أماكن أخرى): استعلم عن القانون المطبق واستشر مختصًا — هذا الدليل ليس رأيًا قانونيًا.
🔎 مثال ملموس — 🔎 مثال ملموس — المصادقة والتحقق من حق
هيكل مصادقة ومراقبة حق، مثل ما يستخدمه ياسين:
// Authentifier l'utilisateur via le Groupware Utilisateur
SI gpwOuvre("CnxNegoce") ET gpwConnecte(sLogin, sMotDePasse) ALORS
// Contrôler un droit AVANT l'action sensible
SI gpwDroit("FACTURE", gpwSuppression) ALORS
// ... suppression de la facture autorisée ...
SINON
Info("Votre profil ne permet pas de supprimer une facture.")
FIN
SINON
Erreur("Identifiant ou mot de passe incorrect.")
FIN
gpwFerme()
القراءة: المصادقة تحدّد من يتصرّف؛ ومراقبة الحق تقرر هل الفعل مسموح — على مستوى الدور، لا الشاشة فقط.
الدرس: نتحقق من الحق داخل المعالجة (وجهة البيانات)، كي تستفيد عمليات الاستيراد والمعالجة بالدفعات من الضوابط نفسها.
مفردات القسم
- Groupware Utilisateur
- وحدة مدمجة في WinDev توفّر جاهزًا المصادقة وإدارة المستخدمين والمجموعات والحقوق حتى النوافذ والحقول.
مثال بسيط: ياسين يفعّل Groupware Utilisateur لتطبيق تجارته.
ما ليس كذلك: تطوير مخصّص للأمان، طويل ومحفوف بالمخاطر.
رد فعل: حقوق جاهزة → Groupware Utilisateur.
- أقل صلاحية
- لا يملك كل فرد إلا الحقوق الضرورية لعملها — يحدّ من الأضرار عند الخطأ أو اختراق الحساب.
مثال بسيط: أمين مخزن ياسين لا يستطيع الموافقة على خصم.
ما ليس كذلك: منح الجميع حقوق مدير «للتبسيط».
رد فعل: الضروري فقط → أقل صلاحية.
- كلمات المرور (⚠️)
- لا نخزّن كلمة مرور صريحة أبدًا: نحفظ بصمة (تجزئة).
مثال بسيط: ياسين يتحقق من أن كلمات المرور مجزّأة في قاعدة البيانات.
ما ليس كذلك: ملف كلمات مرور صريحة، ثغرة كبرى.
رد فعل: حماية بيانات الدخول → البصمة.
- أمان جهة البيانات
- إخفاء زر لا يكفي: يجب التأمين أيضًا على مستوى البيانات (حقوق HFSQL Client-Serveur، قيود).
مثال بسيط: ياسين يحدّد الحقوق على الخادم، لا على الشاشة فقط.
ما ليس كذلك: الاعتماد على الواجهة وحدها لحماية البيانات.
رد فعل: الحاجز الحقيقي → أمان جهة البيانات.
- التتبع
- تسجيل من فعل ماذا ومتى على العمليات الحساسة، للتدقيق والنزاعات وتشخيص الحوادث.
مثال بسيط: ياسين يسجّل عمليات حذف الفواتير.
ما ليس كذلك: لا أثر للتعديلات الحساسة.
رد فعل: القدرة على التدقيق → التتبع.
في التطبيق — تطبيقيًا — تأمين التطبيق
- أعدّ المصادقة ومجموعات المستخدمين (Groupware Utilisateur) بتطبيق أقل صلاحية: لكل فرد ما يلزمه فقط، كما فعل ياسين.
- لا تخزّن كلمة مرور صريحة أبدًا (بصمة)، وأمّن جهة البيانات أيضًا (حقوق HFSQL Client-Serveur)، لا الواجهة فقط.
- تتبّع العمليات الحساسة (من، ماذا، متى) للتدقيق والتشخيص، وشفّر التبادلات والبيانات الحساسة.
- احمِ النسخ الاحتياطي (نسخة مسروقة = قاعدة بيانات كاملة مسروقة)، وتحقق من التزاماتك القانونية بشأن البيانات الشخصية في بلدك.
سكريبت خطوة بخطوة — التأمين كما فعل ياسين (5 دقائق)
1) فعّل Groupware Utilisateur واربط مديرًا أول. 2) أنشئ المجموعات المطابقة للأدوار الحقيقية (مندوب، أمين مخزن، محاسب، مسؤول، مدير). 3) امنح كل مجموعة الحقوق الضرورية فقط (استشارة / إنشاء-تعديل / حذف / موافقة / إدارة). 4) أضف مراقبة حق على عملية حساسة (حذف فاتورة). 5) أمّن جهة HFSQL Client-Serveur أيضًا وسجّل العمليات الحساسة. 6) احمِ النسخ الاحتياطي وتحقق من التزاماتك بشأن البيانات الشخصية.
ابدأ بقواعد بسيطة ودقّق فقط حيث تكون الحاجة حقيقية: نظام حقوق دقيق جدًا يصبح غير قابل للإدارة، وبالتالي غير آمن.
نموذج للنسخ واللصق — بطاقة الأمان الخاصة بي
Groupware Utilisateur : auth + utilisateurs + groupes, droits clé en main
Moindre privilege : chacun n'a QUE le necessaire
Mots de passe : jamais en clair -> empreinte (hachage)
Interface != securite : securiser AUSSI cote DONNEES (droits HFSQL C/S)
Tracabilite : qui a modifie quoi, quand (audit, litiges)
Sauvegardes : une sauvegarde volee = toute la base volee
Donnees personnelles : obligations LEGALES variables selon les pays
مجموعات حسب الدور
ياسين ينشئ مندوبًا وأمين مخزن ومحاسبًا ومسؤولًا ومديرًا، بدلًا من حقوق شخص بشخص.
حق على عملية
ياسين يتحقق من حق الحذف قبل السماح بحذف فاتورة.
أمان جهة البيانات
ياسين يعزّز مراقبة الواجهة بحقوق HFSQL Client-Serveur.
أثر التدقيق
ياسين يسجّل التعديلات الحساسة للرد على مراجعة محاسبية.
✓ ممارسات جيدة
- العمل بـالمجموعات (أدوار مهنية)، لا شخصًا بشخص.
- التأمين جهة البيانات، لا على الشاشة فقط.
- البقاء بسيطًا: نظام حقوق دقيق جدًا يصبح غير قابل للإدارة.
✗ أخطاء شائعة
- الاعتقاد بأن إخفاء زر يكفي للتأمين.
- تخزين كلمة مرور صريحة (ثغرة كبرى).
- منح حقوق الإدارة «للتبسيط».
النقاط الأساسية
- Groupware Utilisateur يوفّر جاهزًا المصادقة والمجموعات والحقوق حتى النوافذ والحقول.
- القاعدة الذهبية: أقل صلاحية، ولا كلمة مرور صريحة أبدًا.
- ⚠️ أمان الواجهة لا يكفي: أمّن جهة البيانات أيضًا.
- تتبّع العمليات الحساسة واحمِ النسخ الاحتياطي؛ والبيانات الشخصية تخضع للقانون المحلي.
تحدي 48 ساعة — طبّقه غدًا
كما فعل ياسين، فعّل Groupware Utilisateur في تطبيقك وأنشئ ثلاث مجموعات على الأقل تطابق أدوارًا مهنية حقيقية. طبّق أقل صلاحية: تحقق من أن عضوًا في مجموعة لا يستطيع تنفيذ فعل خارج دوره. أضف مراقبة حق على عملية حساسة (حذف، موافقة) وتحقق من أن المراقبة تصمد حتى خارج الواجهة (جهة البيانات). وأخيرًا اكتب في جملة واحدة ما تتتبّعه لأغراض التدقيق.
- أنشئ مجموعات حسب الدور وأطبّق أقل صلاحية.
- أؤمّن البيانات على المستوى الصحيح، لا على الشاشة فقط.
- أتتبّع العمليات الحساسة وأحمي النسخ الاحتياطي.
أسئلة شائعة
لماذا لا يكفي الأمان على مستوى الواجهة؟
لأن الواجهة ليست إلا مسارًا نحو البيانات: إخفاء زر أو تعطيل حقل يمنع المستخدم العادي من التصرّف، لكنه لا يمنع الوصول إلى القاعدة بطريقة أخرى — وصول مباشر، أداة إدارة، اتصال ODBC، ملفات منسوخة، تصدير، نسخة احتياطية مستعادة، أو استيراد من تطبيقك نفسه لا يملك الضوابط نفسها. الحاجز الحقيقي عند مستوى البيانات (حقوق HFSQL Client-Serveur، قيود التكامل) وفي قواعد تجارية مركزية، كي تستفيد منها المعالجة بالدفعات أيضًا.
كيف ندير حقوق المستخدمين دون تعقيد مفرط؟
بالعمل بالمجموعات (ملفات مهنية) بدلًا من الأشخاص، وتطبيق أقل صلاحية بقواعد بسيطة، وإضافة الدقة فقط حيث تكون الحاجة حقيقية. أنشئ مجموعات تتبع الأدوار (مندوب، محاسب، أمين مخزن، مسؤول، مدير)؛ والأشخاص يُربطون بها، فيُحلّ الوصول أو المغادرة بإسناد واحد. ميّز خمسة مستويات أساسية: استشارة، إنشاء-تعديل، حذف، موافقة، إدارة. النظام الدقيق جدًا يصبح غير قابل للإدارة — والإدارة الفوضوية تخلق ثغرات: التعقيد عدو الأمان.
لماذا لا يكفي تأمين واجهة التطبيق وحدها؟