الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حماية البيانات عند الزبون

مغلق
بدأه Wael Dalloul في 5 أكتوبر 2005 · 15 رد · 2,369 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قرأت كافة مواضيع الحماية السابقة

اريد ان اسأل سؤال لم يطرح

ارجو الأجابة او التوضيح

لدي قاعدة بيانات بداخلها Data كيف يمكن حماية البيانات عند الزبون من السرقة

اي ان يدخل متطفل على Sql Server ويكتب استعلام معين ثم يقوم بتصديره الى Excel او ان يصدر اي جدول الى اي مكان اخر

هناك طريقة وهي تشفير جميع البيانات في القاعدة و فك تشفيرها من البرنامج

و لكن ابحث عن افضل منها

ارجو المساعدة

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#2

:) استخدم Low Privillage Accounts مع حق ال Execute فقط لل SP و ال Views

و لكن هذا لن يمنع من سرقة بياناتك عند اختراق السيرفر

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

السلام عليكم ورحمة الله وبركاته

بلنسبة لى VIEW و sp احنا ممكن نعمل التالى

 CREATE VIEW dbo.vw_CMP_Branch
WITH ENCRYPTION

هل ممكن نعمل كدة على TABLE ؟

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#4

لا يمكن استخدام With Encryption مع الجدول

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

السلام عليكم

و لكن انا اريد ان انزل البرنامج فقط عند الزبون

حيث ممكن ان يكون له Security خاصة به

لا يمكن ان يعطي اي احد كلمة السر الخاصة بال Administrator لكي اغيرها و انا اعطي السماحيات

و بالتالي لا يمكن استخدام الحل المطروح

ارجو التوضيح اكثر اذا اسأت الفهم

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#6

انا لم افهم ردك الاخير اتمنى مزيداً من التوضيح

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7

استخدم الSQL Server security mode و الغي الNT Accounts من الSQL Server

بحيث تفصل تماما بين الWindows Accounts و الSQL Accounts

فلا يستطيع احد الدخول الى SQL Server الا باستخدام الSQL Server UseName/Password

#8
اقتباس
انا لم افهم ردك الاخير اتمنى مزيداً من التوضيح

يعني برنامجي اريد ان انزله عند زبون لديه Security خاصة به

و انت قلت

اقتباس
استخدم Low Privillage Accounts مع حق ال Execute فقط لل SP و ال Views

انا لا يمكنني ان اتحكم ب Admin Password لأنها ستكون مع مدير الشبكة

ارجو منك ان تشرح اكثر عن Low Privillage Accounts يبدو انني افهمك خطأ

اقتباس
استخدم الSQL Server security mode و الغي الNT Accounts من الSQL Server

بحيث تفصل تماما بين الWindows Accounts و الSQL Accounts

فلا يستطيع احد الدخول الى SQL Server الا باستخدام الSQL Server UseName/Password

و ما الذي يمنع المستخدم من ايقاف Sql server و من ثم سحب ال DataBase وثم عمل لها Attach

على Server اخر

باختصار و بشكل واضح

انا اريد ان احمي البيانات من السرقة

اسف جدا للتأخر

تم تعديل هذه المشاركة بواسطة waeldalol في 9 أكتوبر 2005 في 17:05

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#9

على حسب علمي فإن ملف الداتابيس محمي عن طريق Windows Authintication ولا يمكن الوصول له إلا من ال Admins .

بالمختصر إذا تم اختراق الجهاز واستخدام صلاحيات ال Admin فقط فيمكن سرقة البيانات .

بمكنك حماية بعض ال Columns برمجيا باستخدام أخد خوارزميات التشفير واستخدام Coulmn من نوع Data او Text لحفظ التشفير فيه .. طبعا يجب فك التشفير في برنامجك ..

أرى هذا فقط ضروري من أجل حماية Credit Card Numbers و بعض الأمور الأخرى الحساسة مثل Passwords .. ويجب أن توفر هذه الطريقة خط ثاني من الحماية .

أما الخط الأول فيجب أن يكون برنامجك ثم SQL Server ثم الوندوز ..

Coding on the Cloud and for the Cloud!

My Blog

#10

ما اقصده بال Low Privillage Account هو حساب باقل صلاحيات ممكنة تعطيه فقط حق تنفيذ الاجراءات المخزنة Execute Stored Procedure و تنفيذ ال Views بدون الوصول للبنية التحتية لقاعدة بياناتك مباشرة

اقتباس
انا لا يمكنني ان اتحكم ب Admin Password لأنها ستكون مع مدير الشبكة

طيب انت تقول انه مدير الشبكة اى ان له سلطات تسمح له بفعل ما يريد و لا يمكنك منعه ما غير ذلك فشفر بياناتك و إن كان هذا سيكون على حساب ال Performance

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 10 أكتوبر 2005 في 02:26

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#11
اقتباس
فشفر بياناتك و إن كان هذا سيكون على حساب ال Performance

هذه هي الطريقة الوحيدة على ما يبدو هي تشفير الحقول الهامة في قاعدة البيانات :rolleyes: ;)

و لكن اريد ان اطرح تساؤل:

لماذا فعلتها Microsoft في منتج Access و لم تفعلها في SQL Server انها اضافت كلمة مرور لقاعدة البيانات

و لكن كلمة مرور Access تكسر بكل سهولة

بالمناسبة هل Oracle تدعم هذه الخاصية (كلمة مرور قاعدة البيانات) ام مثل ال SQL Server

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#12

انت تتعامل مع تطبيقات من نوع Two Tiers او Multi Tiers عبر الشبكات و ليس Single Tier

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

و الاوراكل ايضاً على حسب معلوماتى تستخدم نفس اسلوب ال MS SQL Server

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#13

شكرا لك على التوضيح و جزاك الله خيرا

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#14

السلام عليكم :) شكرا لمن شارك في النقاش في وقت سابق, و لكن اليوم لدي مشكلة جديدة اريد ان تساعدوني في حلها؟

لقد قمت بتشفير البيانات الهامة في الجداول التي اريد ان احمي البيانات فيها و الحمد لله مشي الحال و سرعان ما ظهرت مشالك بعد عمل ذلك في البحث باستخدام Like

و لم اقم بطرح المشكلة هنا لانني استطع عمل ذلك في التطبيق اي اقوم بفك التشفير في التطبيق و اقوم بعد ذلك بالمطابقة, اليوم احتاج الى استخدام Like في قاعدة البيانات و لذلك لعدة اعتبارات اهمها السرعة....

شرح المشكلة مع Like

مثلا: اذا كان لدينا حقل اسمه Name يتم تخزين فيه اسماء الطلاب على الشكل التالي

Name

--------

wael

waeld

waelda

الان بعد تشفير البيانات لو فرضنا انها سوف تصبح على الشكل التالي:

Name

----------

sdf3458dfjfd7df

fgh;lsdhj34576jsdfh

ksdfu4359yfyffgyhdfj34

نلاحظ انه لا علاقة بالحروف التي تم تشفيرها و الحروف الناتجة اي الحرف الاول من السجل الاول هو w تم تشفيره الى sdf مثلا

ام الحرف w في السجل الثاني تم تشفيره الى fgh اي انّ هناك العديد من العوامل التي تدخل في خوارزمية التشفير و يختلف التشفير باختلاف هذه العوامل

لو فرضنا انني اريد البحث عن جميع السجلات التي تبدأ ب w في البيانات الغير مشفرة نكتب الاستعلام التالي لعمل ذلك

declare @str varchar(50)
set @str = 'w'
select name from table1 where name like @str + '%'

سوف يتم تنفيذ الاستعلام بشكل صحيح بدون اي مشاكل

الان لو فرضنا انني اريد البحث عن جميع السجلات التي تبدأ ب w في البيانات المشفرة نكتب الاستعلام التالي لعمل ذلك

declare @str varchar(50)
set @str = Encrytpion('w')-- هنا لنفترض انه تم استدعاء تابع التشفير و تم تشفير الكلمة
select name from table1 where name like 'w%'

سوف نلاحظ انّ هذا الاستعلام لا يجلب نتائج صحيحة و ذلك بسبب ان تشفير الحرف w لوحده يختلف عن تشفيره في السلسلة wa و هكذا

هل هناك طريقة ما لحل هذه المشكلة :^) :blink:

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#15

طيب يا وائل عندما تقوم بعمل retrieve للبيانات المشفرة

كيف تقوم بذلك؟

تمر على رأسي فكرة عمل ما تريد من الكود.

*-)

فكر بطريقة أخرى

#16
اقتباس
طيب يا وائل عندما تقوم بعمل retrieve للبيانات المشفرة

كيف تقوم بذلك؟

انا كنت اقوم بعمل query بتجيب السجلات التي اريدها و عندما اريد ان اعرض البيانات اقوم بفك تشفيرها ثم عرضها

يمكن ان اقوم بعمل بحث باستخدام مميزات لغة البرمجة التي اعمل عليها(delphi) حيث هناك توابع يمكن باستخدامها البحث عن شيئ معين

و يمكن ايضا عمل Filter بحيث يقوم بتصفية السجلات

و لكن ما اريد عمله هو اعقد من هذا حيث اريد عمل Advance search اي يتم البحث عن اكثر من حقل بنفس الوقت و من الصعب جدا عمل ذلك

باستخدام التوابع السابقة

اقتباس
تمر على رأسي فكرة عمل ما تريد من الكود.

بانتظار افكارك....

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

هذا الموضوع مغلق.

مواضيع مشابهة