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

*حماية* هل الحماية بإلغاء خاصية الشفت ( SHIFT ) آمنة ؟

مغلق
بدأه abohajr في 21 يناير 2003 · 12 رد · 5,675 مشاهدة · في قسم الأرشيف و المواضيع المميزه
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الكرام

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

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

لذا أحببت أن أطرح هذا الموضوع في هذا الوقت بالذات رغم أنه كان يجول في ذهني منذ ما يزيد عن عام ، وذلك رغبة في ألا نتكل على حماية من هذا النوع

أكرر هنا سؤالي الذي طرحته في العنوان : هل حماية إلغاء الشفت آمنة ؟

أدع الإجابة للدالة التالية دون أي تعليق إذ إنا في انتظار التعليق منكم

Public Function del_shift_prop(mdb As String)



Dim db As DAO.Database

Dim prp As DAO.Property

Dim wrkJet As Workspace

  

On Error Resume Next



      Set wrkJet = DBEngine.Workspaces(0)

      Set db = wrkJet.OpenDatabase(mdb)

      db.Properties("AllowBypassKey").Value = True

      If Err.Number = ErrPropNotFound Then

      Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, True)

      db.Properties.Append prp

      End If



      Err.Clear



End Function

تحياتي

أخوكم / أبو هاجر

#2

هذا ليس تحليل وإنما حباً في المشاركة في هذا الموضوع0

عمليت الحماية بإلغاء تأثير مفتاح الشفت ما هي إلا محاولات فقط فقد تجدي بعض الشيء خاصة مع المبتدئين الغير متمكنين من استعمال الدوال والأكواد 0عذراً لا أقصد بــ " مبتدئين " شخص بعينه ولكن أنا أولهم 0 وهذه الطريقة سهلة المنال للمتمكنين فهي ليست حماية ولكن لضعف الحماية على مستوى الأكسيس جعل من الكثيرين البحث والمحاولات على الأقل ولو بشيء يسير0

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

#3

حتي اذا كانت الخاصية غير مفعلة فى القاعدة المطلوب حمايتها

يمكننا اعادة تفعيلها و التحكم فيها بعد التشغيل

و يمكن ايضا التحكم فى التفعيل أو عدمه عن طريق كلمة سر

و ذلك باستدعاء الدالة الاتية bypassit فى ماكرو ال autoexec فى القاعدة المطلوب حمايتها

فهل هذا يتغلب علي تغيير قيمة الخاصية من الخارج بالدالة السابقة ؟؟

Function bypassit()

 SetBypassProperty

End Function



'=================================



Sub SetBypassProperty()

Const DB_Boolean As Long = 1

ChangeProperty "AllowBypassKey", DB_Boolean, False



 X = InputBox("Enter Password")

If X <> "abuhagar" Then

 MsgBox "you are not allowed to Pypass the open Dialog - sorry !!!", 64, "Bye Bye !!!"

 DoCmd.Quit

 Exit Sub

End If



End Sub

'================================

Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer

    Dim dbs As Object, prp As Variant

    Const conPropNotFoundError = 3270



    Set dbs = CurrentDb

    On Error GoTo Change_Err

    dbs.Properties(strPropName) = varPropValue

    ChangeProperty = True



Change_Bye:

    Exit Function



Change_Err:

    If Err = conPropNotFoundError Then    ' Property not found.

        Set prp = dbs.CreateProperty(strPropName, _

            varPropType, varPropValue)

        dbs.Properties.Append prp

        Resume Next

    Else

        ' Unknown error.

        ChangeProperty = False

        Resume Change_Bye

    End If

End Function
#4

أخي الكريم محمد

السلام عليكم

ما نفعله عادة هو أننا نضع أمراً ما لإعادة الخاصية لأغراض الطوارئ ونحمي هذا الآمر بكلمة مرور

لكن مع تنفيذ الأمر من الخارج فلن يكون هناك أي حماية علماً بأن الدالة السابقة تنفذ الأمر على قواعد البيانات MDB و MDE

تحياتي

أخوك / أبو هاجر

#5

أخي ابو هاجر

ارجو التوضيح :) فيبدو أن هناك نقطة مفقودة بالنسبة لي

ان التعامل مع الخاصية من الخارج يلغيها ، و اذا حاولنا فتح القاعدة يعيد الكود تفعيلها ( فجزئية خاصية الشيفت فى حد ذاتها ليس فيها مشكلة )

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

مع الشكر

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

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

#6

أخي الكريم محمد

السلام عليكم

ألغ خاصية الشفت في إحدى قواعد البيانات لديك

ثم نفذ عليها الدالة السابقة من أي قاعدة أخرى

اضغط الشفت وافتح قاعدة بياناتك وأخبرني عن النتيجة

ما أذكره هنا هو مجرد خواطر وبودي أن أعرف النتيجة

تحياتي

أخوك / أبو هاجر

#7

رائع............

تحياتى لكما

.............

خالد

#8

الاخ ابو هاجر

اشكرك على طرح الموضوع ,

في الحقيقة انا جربت ما قمت بطرحه منذ فترة حيث استطيع من قاعدة بيانات اخرى تنفيذ الكود على قاعدة البيانات المحمية ولكن بعد التعديل على الكود حيث قمت بتعديل كلمة ()Currentdb الى قاعدة البيانات المحمية وتعديل False الى True وفعلا قام الكود بالغاء الحماية في قاعدة البيانات المحمية,

وقمت بعد ذلك بالبحث عن طريقة تحمي تغيير الخاصية من خارج قاعدة البيانات وفعلا وجدتها في الاكسس ويب على الرابط التالي:http://www.mvps.org/access/general/gen0040.htm

وهي طريقة تعتمد على الحماية باستخدام ال UserLevel Security الخاص بالاكسس بحيث تعطي ال Adminفقط صلاحية التعديل على الخاصية وتمنع المستخدمين من تعديلها وقمت بتجربتها ونجحت في ذلك,ولكن ............

بما ان هناك برامج تستطيع من خلالها معرفة جميع ال Accounts و ال Passwords في ملف الMDW فتصبح طريقة حماية الخاصية غير مجدية ايضا لأن الحماية الاساسية في الاكسس ضعيفة , ((يعني كأنك يا ابو زيد ما غزيت))

واذا عندك شئ افضل ترى ما نستغني و لك خالص تحياتي.

#9

الاخ / ابو هاجر

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

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

و تقبل خالص تحياتي.

#10

أخي الكريم

السلام عليكم

رأيي في هذا الموضوع عبرت عنه بصراحة في الرابط التالي

http://www.arabteam2000.com/vb/showthread....&threadid=18984

وخلاصته ألا أمن للبيانات في أكسس إذا كنا نتحدث عن معايير معتبرة في الأمن وليس عن تأمين البيانات ضد المبتدئين

تحياتي

#11

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

نعم يا استاذنا / واخونا / ابو هاجر

ردك هذا >> اجاب على تساؤلات كثيرة حول الامان في اكسس حتى يكون كل مبرمج على الاكسس يعرفها .......... فشكري وتقديري واحترامي لأستاذنا / ابو هاجر

اقتباس
وخلاصته ألا أمن للبيانات في أكسس إذا كنا نتحدث عن معايير معتبرة في الأمن وليس عن تأمين البيانات ضد المبتدئين
#12

شكرا جزيلا للاخ ابو هاجر .

لقد قرأت ما تفضلت به في ردك على الأخ المزيني وحبيت استفسر عن استخدام SQL SERVER كقاعدة بيانات و استخدام اكسس كFront-End :

1- هل تتم طريقة ربط الجداول باستخدام خاصية ربط البيانات الموجودة في اكسس وهو ما اعتقد انه صعب الحماية او عن طريق كتابة كود مثل ماهو مستخدم في فيجوال بيسك ؟

2- ايهما افضل استخدام MDB File OR ADP File ؟

واخيرا اود ان اشكرك على سعة صدرك وحسن تجاوبك , وتقبل خالص تحياتي .

#13

أخي الكريم

السلام عليكم

بالنسبة للربط فهو عن طريق الـ ADO أفضل بلا شك من حيث أمن البيانات ولكن حتى مع الربط العادي فهو أفضل من حيث إنك تستطيع استخدام الصلاحيات في قاعدة بيانات SQL SERVER لتسجيل الدخول

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

أما بالنسة للمفاضلة بين MDB File OR ADP File فلا شك أن الـ ADP أفضل من حيث إنه مصمم خصيصاً للتعامل مع قواعد البيانات الكبيرة ولكن يجب أن تضع في ذهنك أن عدداً من وظائف ودوال أكسس التي اعتدت على استخدامها لا تعمل مع ADP وأنك تحتاج ـ ربما ـ إلى عدد كبير من التعديلات حتى يعمل برنامجك بشكل صحيح

تحياتي

أخوك / أبو هاجر

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

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