الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

تأمين القاعدة

Featured Replies

بتاريخ:

الأخوة الكرام ، تحية طيبة وبعد ،

أنا بحثت كثير جداً عن كيفية تأمين قاعدة بياناتي ... ولكن كل شيء أراه هو تشفير البيانات الفعلية والبيانات الوصفية بحيث أن تكون كعنكبوت غير مفهوم لأي شخص ... وفي هذه الحالة سأضطر الي عدم إستخدام إمكانيات قاعدة البيانات التي علي أساسها بنيت فكرة الـ Database ... أو عدم الربط بين الجداول وبرمجة كل شيء من داخل الديفيلوبار نظراً لتأمينها العالي ... ولكن كيف يمكنني تشفير وحدات البرمجة ومخازن جمل السيكوال نفسها الموجودة داخل القاعدة من Functions, Procedurs, Views, Packages, Triggers, .... الي آخرة


هذا الموضوع لن أجد له حل أمثل حتي الآن ... فهل من مستجيب ؟؟؟؟؟؟؟

شكراً للجميع

بتاريخ:
  • كاتب الموضوع

يا جماعة بإختصار شديد أنا عاوز أزود نسبة أمان القاعدة ( جداول / علاقات / عوارض / أغراض / إجرائات / حزم / ... وهكذا )


فهل هناك حل لذلك ؟؟؟

أنا مش عاوز غير رد واحد ( نعم / لا ) !!!


أممممم

أنا واثق أن الإجابة بـ ( لا ) ... بس يمكن يكون هناك حل مبدئي أفضل من فكرة تشفير البيانات بالقاعدة DDL/DML




شكراً

بتاريخ:

السلام عليكم ورحمه الله وبركاته
انت ممكن تامن قاعده البيانات بكذا طريقه .
1 - تامين عدم دخول اى مستخدم غير مصرح له بالدخول الى قاعده البيانات ...سواء عن طريق اى برنامج معروف مثل تود او كلينت ...او من خلال عمل حصر شامل لكل يوزر على الداتابيز ومنه تقدر تعمل بلوك للى انت مش عايزهم يدخلوا على الداتابيز مع تغيير كلمه السر لليوزر الباقيه ويكون انت فقط معاك كلمه السر
2 - لو بتتعامل مع ابلكاشن سيرفر ..تقدر تقفل بورت الداتبيز خالص من السيرفر نفسه وتخللى الدخول انترنال من داخل السيرفر فقط وتقفل اى ريموت اكسس او اى برنامج يتيح لاى حد انه يدخل على السيرفر الخاص بقاعده البيانات
3 - تقدر تعمل اوديت على قاعده البيانات لتسجيل عدد محاولات الدخول والخروج من القاعده لاى مستخدم

بتاريخ:

إذا كنت تقصد تشفير الكود الخاص بالإجرائيات فهناك wrap.exe (تشغل عبر CMD ) التي تقوم بتشفير نص PL/SQl المدخل لتظهر الناتج مشفر يمكنك تنفيذه مباشرة .....

بتاريخ:
  • كاتب الموضوع
السلام عليكم ورحمه الله وبركاته
انت ممكن تامن قاعده البيانات بكذا طريقه .
1 - تامين عدم دخول اى مستخدم غير مصرح له بالدخول الى قاعده البيانات ...سواء عن طريق اى برنامج معروف مثل تود او كلينت ...او من خلال عمل حصر شامل لكل يوزر على الداتابيز ومنه تقدر تعمل بلوك للى انت مش عايزهم يدخلوا على الداتابيز مع تغيير كلمه السر لليوزر الباقيه ويكون انت فقط معاك كلمه السر
2 - لو بتتعامل مع ابلكاشن سيرفر ..تقدر تقفل بورت الداتبيز خالص من السيرفر نفسه وتخللى الدخول انترنال من داخل السيرفر فقط وتقفل اى ريموت اكسس او اى برنامج يتيح لاى حد انه يدخل على السيرفر الخاص بقاعده البيانات
3 - تقدر تعمل اوديت على قاعده البيانات لتسجيل عدد محاولات الدخول والخروج من القاعده لاى مستخدم



كلام جميل وممتاز جداً ... لكن سؤال ... لو أنا مثلاً قمت ببيع البرنامج الي ثلاثة شركات كيف أأمن القاعدة من الإختراق ؟؟؟

هنفرض أن أنا صممت شاشة بتقوم بإجراء كل هذه المهام ( تصدير/إستيراد ) للقاعدة ... وهفرض أن المستخدم المدرج أنا الذي أدرجتة بالكود وأنا بعملة كلمة مرور بنفسي !!!

س1 مش المفروض أن ملف الـ Export مدرج ضمن إسطوانة برنامجي؟؟؟ مش المفرود أن المبرمج المحترف هو الذي يقدر يعرف المستخدم الإفتراضي لهذا الملف ؟؟؟ ولو عرف يقدر يعمل تصدير أو إستيراد لقاعدة البيانات علي أي مشتخدم هو صنعة بأيدة صح ؟؟؟ طب هل يمكن تشفير هذا الملف ؟؟؟

س2 أنا هقفل كل المستخدمين الموجودين في قاعدة البيانات ككل بكلمة مرور مميزة ... وخصوصاً أي مستخدم يدعم صلاحية الـ DBA ... طب لو المستخدم طلب مني أن تكون Oracle تحمل قاعدة بيانات واحدة كيف أحمي الـ User الذي أنشأتة من الإختراق ؟؟؟ مع العلم أن البرنامج Enterprise Manager Console بيدخل علي مستخدم DBA وبيقدر يشوف كل المستخدمين دون أي كلمة مرور ؟؟؟ فما الحل ؟؟؟


إذا كنت تقصد تشفير الكود الخاص بالإجرائيات فهناك wrap.exe (تشغل عبر CMD ) التي تقوم بتشفير نص PL/SQl المدخل لتظهر الناتج مشفر يمكنك تنفيذه مباشرة .....


هذا جزء مما أقصدة ... ولكنني حاولت من قبل أن أنفذ هذا ولكنني لم أفلح في ذلك ... ممكن مثال علي مستخدم معين ؟؟؟؟

وكيف يمكنني تشفير المستخدم ككل من جداول وعلاقات وعوارض وخلافة ؟؟؟




شكراً
بتاريخ:

طيب بسيطه جدا بامر الله

1 - انت ممكن تشيل كل العلاقات بين الجداول فى الداتابيز وتجعل كل العلاقات من خلال الفورمز فقط .
يعنى لو حد حاول يشوف السكيما ويستخرج منها ERD للبرنامج ...هو مش هيعرف يشوف العلاقات رايحه فين وجايه منين ..مجرد جداول وبس
2 - انت تقدر تخللى الكود بتاعك كلله من الفورمز وليس على الداتابيز كبروسيدر مثلا او باكاج وانت كده بتسلم الفورمز FMX يعنى مفيش اى مشاكل بالنسبه للكود وحتى اى بروجرام يونيت هتكون برده مشفره

بتاريخ:
  • كاتب الموضوع

الأخ الكريم drClick أشكرك كل الشكر علي ردك هذا .

بإختصار شديد أنا عايز أستخدم كل إمكانيات القاعدة وفي نفس الوقت أحميها من أي شيء خارجي ... وإلا ما فائدة الأوراكل دون حماية القاعدة !!!

دي الأكسيس بتحاول بعض الشيء حماية نفسها علي قدر المستطاع بإستخدام بعض طرق الحماية ... مش معقولة أوراكل بجلالة قدرها ملهاش حماية !!!



شكراً

بتاريخ:

تنفيذ الإجراء التالي :

wrap iname=input_file [oname=output_file]


حيث تضع مسار الملف الذي يحوي على الإجرائيات )input File ) .. .ينتج عنه ملف Output فيه الإجرائيات مشفرة ، حيث لا تستطيع تمييز شيء سوى عبارة Create Procedure و البارامترات ...إلخ ..
تستطيع تنفيذ هذا الملف دون أي مشاكل ...
هذه الأداة فقط لإجرائيات PLSQL أي أنها لا تتعلق باي شيء آخر ...
بالنسبة لباقي الموضوع : من وجهة نظري الشخصية وخبرتي
1- لا يجوز إرفاق ملف EXP مع نسخة البرنامج ، لأنه يحافظ على القيم التي وصل إليها Sequence و غيرها من الأمور ، و إستخدام EXPORT لعمل النسخ الإحتياطية فهذا خاطئ ، أما إذا كان الأمر ضرورياً فيمكنك تشفير هذا الملف بكود خارجي (.Net أو جافا ) بمفتاح تشفير خاص بكل شركة ... أما إذا إستطاع جاسوس في إحدى الشركات أن يقوم بعملية التصدير من وراء برنامجك فهذا خرق أمني تسأل عنه الشركة و ليس برنامج .
2- الجداول و العلاقات هي أغراض SQL و بالتالي لا تشفر ، فهي ليست كود تنفيذ يمكنك تشفيره كما في wrap .. و لكن يمكنك عمل تمويه بأن تحمل جداولك و أعمدتك أسماء لا تعبر عن محتواها(كما قمت بتنفيذه مع الشركة التي أعمل بها ) .
3- المقارنة مع أكسس لا تجوز ،لأن نظام المستخدمين والصلاحيات مختلفان تماماً ، كما أن أوراكل هي قاعدة بيانات شبكية تتطلب جهود مدير قاعدة و ليس كما في أكسس يكفي أن تنسخ الملف نسخاً عاديا و لا يتطلب منك تحديد ملفات بيانات جديدة و Redo و غيرها .......
4- بالنسبة لمشاركة كلمة المرور بين ثلاث شركات فهذه بسيطة ، و السبب أن حتى مدير القاعدة لا يستطيع معرفة كلمة السر الخاص بمستخدم برنامجك و بالتالي لن يستطيع إختراق قواعد الشركات الأخرى لأنه ببساط لا يملك أي كلمة سر لذلك ... إن تثبيت كلمة السر في الكود خاطئ و هو مبدأ لا ترضى به الشركات لأنه ثغرة أمنية و السبب أنها قد لا تثق بالمبرمج أو الشركة المنفذة بسبب حساسية المعلومات التي لديها ، لذلك نلجأ في العادة إلى جعل مدير النظام البرمجي يقوم بوضع كلمة السر التي إختارها للمستخدم الذي أنشأه على القاعدة ثم يقوم بتمريرها للنظام البرمجي عند تنصيبه ...
أرجو أنني قد وفقت في الإجابة ...
و السلام عليكم

بتاريخ:
  • كاتب الموضوع
هذا الملف بكود خارجي (.Net أو جافا ) بمفتاح تشفير خاص بكل شركة


أنا عايز حل بأوراكل .

المشكلة أنني عرضت هنا في المنتدي موضوع يخص موضوع منهج الملفات والتعامل معها بالطرق المختلفة ( عشوائي / ثنائي / تسلسلي ) ولكنني لم أجد كلمة رد واحدة ... دة غير أنه مفيش أصلاً سوي Text_IO الذي يتعامل مع الملف سطر بعد سطر !!!

أما إذا إستطاع جاسوس في إحدى الشركات أن يقوم بعملية التصدير من وراء برنامجك فهذا خرق أمني تسأل عنه الشركة و ليس
برنامج


ولماذا أنتظر حتي يتم عملية الإختراق ... حماية بيانات الشركة مطلوبة وواجبة ... والذي سيحميها صاحب الشركة نفسة أو مندوب عنه !!!

موضوع النماذج والحمد لله تم حلها بواسطة شركة أوراكل ... ولكن ماذا عن قاعدة البيانات نفسها ؟؟؟

طب صاحب الشركة هيأدر يحمي بياناتة ... طب السؤال من سيحمي بياناتي أنا ( البنية التحتية للقاعدة ) ؟؟؟

الجداول و العلاقات هي أغراض SQL و بالتالي لا تشفر ، فهي ليست كود تنفيذ يمكنك تشفيره كما في wrap .. و لكن يمكنك عمل تمويه بأن تحمل جداولك و أعمدتك أسماء لا تعبر عن محتواها(كما قمت بتنفيذه مع الشركة التي أعمل بها ) .


بلاش كلمة تشفير ... خليها حماية !!!

علي فكرة أنا ممكن أخلي أي مبرمج محترف يدخل القاعدة وميفهماش خالص ، أنظر :
 
Create Table tbb9a8f
(
 fbb9a8fb6bb Number(10),
 fbb9a8fbc909b9a VarChar2(20),
 fbb9a8fb19e929a VarChar2(50),
 Constraint PK_bb9a8f Primary Key(fbb9a8fb6bb)
)
/

create table tba928f
(
 fba928fa0b6bb number(10),
 fba928fa0bc909b9a varchar2(20), 
 fba928fa0b19e929a varchar2(50), 
 fba928fa0bb9a8fb6bb Number(10),
 constraint pk_ba928f primary key(fba928fa0b6bb)
)
/



مش هتصدق لو قلت لك أن هذه الجداول هي نفسها الجداول التالي :

 
-- Dep --
Create Table Dep
(
 Dep_ID Number(10),
 Dep_Code VarChar2(20),
 Dep_Name VarChar2(50),
 Constraint PK_Dep Primary Key(Dep_ID)
)
/

-- Emp --
Create Table Emp
(
 Emp_ID Number(10),
 Emp_Code VarChar2(20),
 Emp_Name VarChar2(50),
 Emp_DepID Number(20),
 Constraint PK_Emp Primary Key(Employee_Id)
)
/



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

بس السؤال ، هل قاعدة البيانات مصممة لهذا ؟؟؟ ولماذا لا أستخدم إمكانياتها التي بنيت علي أساسها ؟؟؟

أعتقد أنه من حقي

المقارنة مع أكسس لا تجوز ،لأن نظام المستخدمين والصلاحيات مختلفان تماماً ، كما أن أوراكل هي قاعدة بيانات شبكية تتطلب جهود مدير قاعدة و ليس كما في أكسس يكفي أن تنسخ الملف نسخاً عاديا و لا يتطلب منك تحديد ملفات بيانات جديدة و Redo و غيرها


أنا لا أقارن ... بس بوضح

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


الأخ الكريم المشكلة أنك لو دخلت علي برنامج Enterprise Manager Console وإتصلت بأي مستخدم يحمل صلاحية الـ DBA هيفكلك كل حاجة !!!


فهذا هو ما أتحدث عنه

-----------------------------

إخواني الكرام ... أنا لا أتحدث عن تشفير ... ولكنني أتحدث عن زيادة أمن !!!

ولم أقصد الديفيلوبار ... فقد علمت أن الديفيلوبار جيد في عملية الحماية ... بس المشكلة في القاعدة نفسها ( البيانات الفعلية والوصفية ) ... فكيف أحمي البنية التحتية للقاعدة !!!



شكراً
  • بعد 1 شهر...
بتاريخ:

السلام عليكم.

الأخ مصطفى. إذا كان قصدك إن أي حد يفتح ال SQLPLUS ويحاول يكتب جملة إستعلام فتجد أن البيانات تم تشفيرها بمعنى أنك لا تستطيع أن ترى البيانات من خلال ال SQL/PLUS فهذا ممكن وأعتقد أني رأيت هذا من قبل ولكن للأسف كنت أتمنى أن يكون معى كود التشفير. وعموماً لو إستطعت الحصول عليه فأكيد هارفعه على المنتدى للإستفاده العامه....

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.