الخدمة الذاتية للموظف

بوابة الموظف والأمن: كيف تضمن ألّا يرى أحد راتب غيره؟

September 4, 2026 · KEMTOVA ERP · 9 دقائق قراءة

تخيّل موظفاً فتح قسيمته في البوابة، فرأى في شريط العنوان شيئاً مثل /payslip?id=1042. غيّر الرقم إلى 1043 وضغط. إن ظهرت قسيمة زميله، فليست هذه ثغرة تقنية دقيقة يكتشفها خبير أمن؛ إنها تسريب رواتب الشركة كلها بإصبع واحد، ويكتشفه أول فضولي.

هذا النمط — الوصول المباشر بتغيير المعرّف — هو أشيع ثغرة في تطبيقات الأعمال، وأكثر ما يقع في البوابات المضافة على عجل فوق نظام قائم. والسبب أن البوابة بُنيت على قاعدة «أخفِ ما لا يخصّه» بدل «لا تعرض إلا ما يخصّه».

الفرق الذي يقرّر كل شيء: يُخفي أم لا يستطيع؟

هناك طريقتان لبناء بوابة موظف، تبدوان متطابقتين على الشاشة ومختلفتان تماماً في الأمن:

الطريقة الأولى (الخطرة): الشاشة تُرشِّح. الخادم يعرف كيف يعطي قسيمة أي موظف، والشاشة تطلب قسيمة الموظف الحالي فقط. أي أن **القدرة على إعطاء قسيمة الغير موجودة**، والذي يمنعها هو أن الشاشة لا تطلبها. وأي طلب يُصنَع يدوياً — بتغيير رقم في العنوان، أو بأداة بسيطة — يتجاوز الشاشة ويصل إلى القدرة نفسها.

الطريقة الثانية (الصحيحة): الخادم لا يقبل معرّفاً أصلاً. نقاط البوابة لا تأخذ «معرّف موظف» في أي عنوان. الخادم يستنتج الموظف من **حساب الداخل نفسه**، ثم يقرأ بياناته هو. فلا يوجد رقم يُغيَّر، ولا طلب يُصنَع، لأن الطلب لا يحمل ما يمكن التلاعب به.

والفرق بينهما ليس في درجة الأمان بل في نوعه: الأولى تعتمد على أن أحداً لن يحاول، والثانية لا تعبأ بمن يحاول.

وحين يلزم معرّف: حارس الملكية

تبقى حالات يحمل فيها الطلب معرّفاً بالضرورة: «افتح تفصيل هذه القسيمة بعينها». هنا القاعدة الثانية: **الخادم يتحقّق من الملكية قبل أن يقرأ**. لا يكفي أن يكون الطلب موقّعاً بحساب صحيح؛ يجب أن يُثبت أن هذا السطر يخصّ هذا الموظف — وإلا رُدّ كأنه غير موجود.

ولاحظ صيغة الردّ: **«غير موجود» لا «ممنوع»**. الفرق مهمّ: «ممنوع» تؤكّد للمحاول أن الرقم صحيح وأن هناك ما يُخفى، فتشجّعه على المتابعة. أمّا «غير موجود» فلا تعطيه شيئاً.

ثم صلاحية واحدة لا شيء غيرها

الخطأ الثالث الشائع: منح الموظف صلاحية «عرض الموظفين» ليرى نفسه. هذه الصلاحية تفتح شاشة الموظفين كلها، وقد يُخفيها التصميم اليوم ويُظهرها تحديثٌ غداً.

الصحيح أن تكون للبوابة **صلاحيتها المستقلّة**، لا تمنح شيئاً من صلاحيات الموارد البشرية. ودورٌ يحملها وحدها يُعطى للموظفين. ومن كانت هي صلاحيته الوحيدة يهبط على بوابته مباشرة — لا على لوحة فارغة يتنقّل فيها بحثاً عمّا يستطيع فتحه.

وحساب دخول واحد لبطاقة موظف واحدة

الربط بين حساب الدخول وبطاقة الموظف هو أساس العزل كله؛ فإن اختلّ اختلّ ما فوقه. والقاعدة: **علاقة واحد بواحد يفرضها النظام لا العُرف**. حسابٌ واحد لا يُربط ببطاقتين، وبطاقةٌ لا تُربط بحسابين. وبغير ذلك يصير ممكناً أن يُربط حساب موظف ببطاقة زميله سهواً — فيرى راتبه بحسن نيّة، وهو أسوأ من الاختراق لأنه لا يترك أثراً يُشتبه فيه.

ومن كان حسابه غير مربوط ببطاقة، يجب أن تُقابله رسالة واضحة تقول ما يفعله («راجع الموارد البشرية لربط حسابك») لا شاشة فارغة ولا خطأ تقني.

وتفاصيل تُنسى وتُسرّب

عنوان البريد. رسالة عنوانها «راتبك 6,870 ريالاً» تظهر على شاشة قفل الهاتف في مصعد أو مقهى. العنوان يحمل الشهر واسم الشركة، والمبلغ في المرفق.

القسيمة غير المرحَّلة. ليست مسألة أمنٍ بل ثقة: عرض رقم قد يتغيّر يفتح باب أسئلة عن شيء لم يصر التزاماً بعد.

ما يُعرض من غير القسيمة. في قسيمة الموظف لا تُعرض حصة صاحب العمل من التأمينات: هي تكلفة شركة لا تُدفع له ولا تُخصم منه.

تعديل الحساب البنكي. السماح للموظف بتغيير رقم حسابه من البوابة بلا اعتماد بابٌ معروف للاحتيال: يُخترق حسابٌ ضعيف الكلمة فيُحوَّل راتب شهر إلى حساب آخر. البيانات ذات الأثر المالي تُغيَّر باعتماد لا بحفظ.

سبع نقاط تُختبر قبل الإطلاق

لا تسأل المورّد «هل البوابة آمنة؟» — الجواب دائماً نعم. اختبر بنفسك بحساب موظف تجريبي:

١) افتح قسيمتك وانظر العنوان: هل فيه معرّف؟ إن كان فغيّره وجرّب.

٢) اطلب تفصيل قسيمة بمعرّف لا يخصّك: هل يعود «غير موجود» أم يعرض شيئاً؟

٣) افتح تبويب الإجازات: هل ترى أرصدة غيرك أو أسماءهم في أي قائمة؟

٤) افتح قائمة الموظفين من العنوان مباشرةً: هل تُفتح لحساب البوابة؟

٥) اطلب قسيمة شهر لم يُرحَّل بعد: هل تظهر؟

٦) غيّر رقم حسابك البنكي: هل يُحفظ فوراً أم ينتظر اعتماداً؟

٧) افحص عنوان بريد القسيمة: هل فيه مبلغ؟

سبع دقائق تكشف ما لا تكشفه ورقة مواصفات.

كيف بُني العزل في كمتوفا ERP

لا معرّف موظف في أي عنوان

كل نقاط بوابة الخدمة الذاتية في موديول الموارد البشرية تحت مسار واحد لا يقبل معرّف موظف: الخادم يحلّ حساب الداخل إلى بطاقته أولاً ثم يقرأ. فلا رقم يُغيَّر في عنوان، والقدرة على قراءة بيانات موظف آخر **غير موجودة في هذا المسار** لا مخفيّة فيه. وهو النمط نفسه الذي تقف عليه بوابة وليّ الأمر في موديول المدارس.

وحارس ملكية حيث يلزم معرّف

تفصيل القسيمة يحتاج معرّف سطرها، فيتحقّق الخادم أن السطر يخصّ هذا الموظف وأن مسيره مرحَّل — وإلا ردّ «غير موجود». اختُبر هذا بمشرط: طلب تفصيل قسيمة موظف آخر رُدّ، وحسابٌ غير مربوط ببطاقة لم تُفتح له البوابة.

وصلاحية واحدة معزولة

البوابة بصلاحية واحدة لا تمنح شيئاً من صلاحيات الموارد البشرية، ولها قالب دور خاص بها يُعطى للموظفين. ومن كانت هي صلاحيته الوحيدة يهبط على بوابته مباشرة.

وربط واحد بواحد يفرضه النظام

ربط حساب الدخول ببطاقة الموظف يجري من شاشة الموظف، وقاعدة البيانات نفسها ترفض ربط حسابٍ ببطاقتين. والقائمة تُظهر الحساب المرتبط بغيره فلا يُختار سهواً.

وعزل الشركات فوق ذلك كله

ما سبق عزلُ موظفٍ عن موظف داخل الشركة. وفوقه عزل الشركة عن الشركة على مستوى قاعدة البيانات نفسها (Row-Level Security): استعلامٌ بلا سياق شركة يعود فارغاً، لا بحسب ما تكتبه الشاشة.

الخلاصة

البوابة الآمنة ليست التي أضافت طبقة تحقّق فوق نظام مفتوح، بل التي **لا تملك أصلاً** طريقاً لعرض بيانات موظف لموظف آخر. والفرق بينهما لا يظهر في العرض التقديمي، بل في سبع دقائق أمام الشاشة بحساب تجريبي — فاختبرها قبل أن تعطي مئة موظف كلمات مرور.

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

كل المقالات