اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر
في 28‏/6‏/2025 at 21:39, Foksh said:

هذه فكرة بسيطة ..

في المعايير النصية لبعض الاستعلامات نستخدم 

 WHERE U_UserName = '" & strUser & "' AND U_Password = '" & strPass & "'")

وكذلك الحال في دوال تجميع المجال 

"[U_FullName]='" & [tx3] & "'")

ايضا عندما نضع معيار نصي لفتح فورم من خلال فورم اخر 

DoCmd.OpenForm "frm2", , , "[U_UserName]='" & [tx2] & "'"

وكذلك الحال عند الفلترة بمعيار نصي

DoCmd.ApplyFilter , "[U_UserName]='" & [tx9] & "'"

وحيث ان الحقول النصية تقبل كتابة أي احرف أو أرقام أو رموز خاصة وبالتي يمكن توظيفها بطريقة معينة لتنفيذ اجراء غير شرعي

الحقيقة التي يعلمها اي شخص لديه خبرة في الحماية أن الرموز الخاصة ورسائل الخطأ غير المعالجة تمثل الطريق الأسهل للاختراق

في الحالة الاولى معيار نصي في استعلام يمكن تسجيل دخول غير شرعي بكافة صلاحيات مستخدم رقم 1 ويمكن تنفيذ استعلام حذف او الحاق او او ... الخ

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

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

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

والسؤال هل هذا هو الرمز الوحيد الذي يمكن استغلاله 

(')

الاجابة لا

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

اخيرا هل يمكن انهاء المشكلة وخصوصا ان الرمز مطلوب للمعايير النصية

نعم يمكن بتتبع المدخلات للحقول النصية المرتبطة باجراء ومن اسهل الطرق استخدام دالة Replace

 strPass = Replace(Me.U_Password, "'", "_")

ايضا استخدام رسائل معالجة الاخطاء وتحديد الاجراء عند حدوث خطأ

ونكتفي بهذا القدر عن الرمز (') وقد نتحدث غن رمز اخر لايقل خطورة

والله الموفق

الشايب

  • Like 3
قام بنشر
13 دقائق مضت, شايب said:

ونكتفي بهذا القدر عن الرمز (') وقد نتحدث غن رمز اخر لايقل خطورة

 

ما شاء الله ، مبدع فيما طرحت .

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

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

أيضاً على ما أعتقد استخدامنا لمطهرات النصوص قد يأتي بنتيجة جيدة ومساعدة ,,

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

If InStr(Me.txtUser, "'") > 0 Or InStr(Me.txtUser, ";") > 0 Then
    MsgBox "تم استخدام رموز غير مسموح بها في اسم المستخدم", vbExclamation
    Exit Sub
End If

 

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

Public Function Sanitizer(ByVal userInput As String, Optional ByVal context As String = "sql") As String
    Dim sanitized As String
    sanitized = Trim(userInput)
    
    Select Case LCase(context)
        Case "sql"
            sanitized = Replace(sanitized, "'", "''")
            sanitized = Replace(sanitized, ";", "")
            sanitized = Replace(sanitized, "--", "")
        
        Case "name"
            sanitized = Replace(sanitized, "'", "")
            sanitized = Replace(sanitized, ";", "")
            sanitized = Replace(sanitized, "*", "")
            sanitized = Replace(sanitized, "=", "")
        
        Case "pure"
        
        Case Else
            sanitized = Replace(sanitized, "'", "''")
    End Select

    Sanitizer = sanitized
End Function

 

وعلى سبيل المثال كإستخدام في الاستعلامات :-

Dim filter As String
filter = "[U_UserName]='" & Sanitizer(Me.txtUser, "sql") & "' AND [U_Password]='" & Sanitizer(Me.txtPass, "sql") & "'"
DoCmd.OpenForm "frmDashboard", , , filter

 

وكمثال على ما طرحته سابقاً لفتح نموذج بفلترة ..

DoCmd.ApplyFilter , "[U_UserName]='" & Sanitizer(Me.txtSearch, "sql") & "'"

 

أو حتى في نموذج تسجيل الدخول لاسم المستخدم ، كانت المحاولة :-

Dim newUser As String
newUser = Sanitizer(Me.txtNewUser, "name")

 

هذه كانت الفكرة التي خطرت لي ، ولكن لاحقاً قمت بتحديثها لإظهار رسالة تحذيرية تلقائية إذا تم رصد مدخل خطير أو محاولات حقن نصية 😁

 

  • Like 3
قام بنشر
12 ساعات مضت, Foksh said:

استخدامنا لمطهرات النصوص قد يأتي بنتيجة جيدة ومساعدة

هذا صحيح وهو اسهل الحلول

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

مع ان مثل هذه المشاركات لا تجد القبول او الاهتمام من بعض الاعضاء وتمر مرور الكرام

فمن خبرة سنوات طويلة نسبة كبيرة من المبرمجين تهتم بامن البرنامج اكثر من اهتمامها بامن البيانات

الشايب

  • Like 4
قام بنشر
منذ ساعه, شايب said:

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

 

ننتظر عودتكم بموضوع منفصل للإفادة 😇

منذ ساعه, شايب said:

مع ان مثل هذه المشاركات لا تجد القبول او الاهتمام من بعض الاعضاء وتمر مرور الكرام

 

للأسف مع تحفظي ، الكثير من المواضيع يُـمَـرُّ عليها مرور الكرام ... 😅

منذ ساعه, شايب said:

فمن خبرة سنوات طويلة نسبة كبيرة من المبرمجين تهتم بامن البرنامج اكثر من اهتمامها بامن البيانات

 

نعم صحيح ، وانا كنت أحدهم على فكرة هههههه

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

 

دمتم بخير 😇

قام بنشر

ربما البعض لم يفهم المشاركة بشكل صحيح انا لم اتحدث عن هندسة عكسية ولا عن كيفية الاختراق

وانما حديثي كان عن احترازات مطلوبة لمنع العبث في البيانات ولا تتطلب الكثير من الجهد وانما سطر واحد لكل مربع نص مرتبط بحدث له معيار نصي ووضعت امثلة للمعيار المشكلة ولم اشر لكيفية كتابة الرموز

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

وهناك مؤسسات تستخدمه لادارة الموارد البشرية وما يتبعها من اجازات ورواتب واصدار سندات القبض والصرف وغير ذلك من استخدامات لا يتسع المجال لحصرها 

واهمال حماية البيانات فيه لكونه برنامج ياتي مع وورد واكسل نظره قاصرة

لذا التنبيه امر مطلوب وخصوصا في موقع متخصص

علما بان استغلال الرموز لتنفيذ بعض الاجراءات ليست حكرا على اكسس فهي موجودة في اغلب قواعد البيانات بما فيها اوراكل و MySQL ولكن تكون اكثر وضوحا في اكسس لسهولته ولكون نسبة كبيرة من مبرمجيه من غير المختصين

الشايب

قام بنشر

لمنع موضوع الحق

انا استخدم الداله


Public Function SafeSql(strValue As String) As String
    If IsNull(strValue) Or strValue = "" Then
        SafeSql = "NULL"
    Else
        SafeSql = "'" & Replace(strValue, "'", "''") & "'"
    End If
End Function

وامرر لها اسم المستخدم وكلمة المرور
 

strUserName = SafeSql(strUserName)

 

  • Like 2
قام بنشر

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

ثنائى الاتجاه يمكن التعرف عليه من خلال الهندسة العكسية

طيب كنت قد كتبت داله تعتمد على تشفير : MD5
ولكن انا كتبتها بدون الاعتماد على اى مكتبات تخص ال .net

وكذلك اعتمد على التشفير  : SHA256 لانه اكثر امانا من سابقه الا انه يعتمد على .net

ولكن بما اننى بقدر الامكان لا احب الاعتماد على اى مراجع ومكتبات خارجية بقدر الامكان 

فكرتى كانت الدمج بين التشفيرين بحيث اذا توفرت المكتة اللازمة يتم التشفير بناء على : SHA256 وان لم تتوفر فى نظام التشغيل يتم الاعتماد على التشفير MD5

والاكواد كالاتى 

Private Function ToLong(ByVal dblValue As Double) As Long
    dblValue = dblValue - 4294967296# * Int(dblValue / 4294967296#)
    If dblValue < 0 Then dblValue = dblValue + 4294967296#
    If dblValue > 2147483647# Then
        ToLong = CLng(dblValue - 4294967296#)
    Else
        ToLong = CLng(dblValue)
    End If
End Function

Private Function RotateLeft32(ByVal lngValue As Long, ByVal intBits As Integer) As Long
    Dim dblValue As Double
    dblValue = CDbl(lngValue And &HFFFFFFFF)
    RotateLeft32 = ToLong(dblValue * (2 ^ intBits) + dblValue / (2 ^ (32 - intBits)))
End Function

Private Function GenerateSalt() As String
    Dim strChars As String, strResult As String
    Dim i As Long
    strChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
    Randomize
    For i = 1 To 16
        strResult = strResult & Mid(strChars, Int(Rnd() * Len(strChars)) + 1, 1)
    Next
    GenerateSalt = strResult
End Function

Public Function MD5Hash(ByVal strText As String) As String
    Dim arrK(0 To 63) As Long, arrS(0 To 63) As Integer
    Dim a As Long, b As Long, c As Long, d As Long, f As Long, g As Long, temp As Long
    Dim h0 As Long, h1 As Long, h2 As Long, h3 As Long
    Dim msg() As Byte, msgLen As Long, paddedLength As Long
    Dim lenInBits As Currency
    Dim chunk(0 To 15) As Long
    Dim i As Long, offset As Long

    For i = 0 To 63
        arrK(i) = ToLong(Abs(Sin(i + 1)) * 4294967296#)
    Next i

    For i = 0 To 15: arrS(i) = Array(7, 12, 17, 22)(i Mod 4): Next i
    For i = 16 To 31: arrS(i) = Array(5, 9, 14, 20)(i Mod 4): Next i
    For i = 32 To 47: arrS(i) = Array(4, 11, 16, 23)(i Mod 4): Next i
    For i = 48 To 63: arrS(i) = Array(6, 10, 15, 21)(i Mod 4): Next i

    msg = StrConv(strText, vbFromUnicode)
    msgLen = UBound(msg) + 1
    paddedLength = ((msgLen + 8) \ 64 + 1) * 64
    ReDim Preserve msg(0 To paddedLength - 1)
    msg(msgLen) = &H80
    lenInBits = msgLen * 8
    For i = 0 To 7
        msg(paddedLength - 8 + i) = (lenInBits / (2 ^ (8 * i))) And &HFF
    Next i

    h0 = &H67452301
    h1 = &HEFCDAB89
    h2 = &H98BADCFE
    h3 = &H10325476

    For offset = 0 To paddedLength - 1 Step 64
        For i = 0 To 15
            chunk(i) = ToLong(CDbl(msg(offset + i * 4)) + _
                       CDbl(msg(offset + i * 4 + 1)) * &H100 + _
                       CDbl(msg(offset + i * 4 + 2)) * &H10000 + _
                       CDbl(msg(offset + i * 4 + 3)) * &H1000000)
        Next i

        a = h0: b = h1: c = h2: d = h3
        For i = 0 To 63
            If i < 16 Then
                f = (b And c) Or ((Not b) And d)
                g = i
            ElseIf i < 32 Then
                f = (d And b) Or ((Not d) And c)
                g = (5 * i + 1) Mod 16
            ElseIf i < 48 Then
                f = b Xor c Xor d
                g = (3 * i + 5) Mod 16
            Else
                f = c Xor (b Or (Not d))
                g = (7 * i) Mod 16
            End If

            temp = d
            d = c
            c = b
            b = ToLong(CDbl(b) + RotateLeft32(ToLong(CDbl(a) + f + arrK(i) + chunk(g)), arrS(i)))
            a = temp
        Next i

        h0 = ToLong(CDbl(h0) + a)
        h1 = ToLong(CDbl(h1) + b)
        h2 = ToLong(CDbl(h2) + c)
        h3 = ToLong(CDbl(h3) + d)
    Next offset

    MD5Hash = LCase( _
        Right("00000000" & Hex(h0), 8) & _
        Right("00000000" & Hex(h1), 8) & _
        Right("00000000" & Hex(h2), 8) & _
        Right("00000000" & Hex(h3), 8))
End Function

Public Function HashPasswordSHA256(ByVal Password As String) As String
    Dim xmlObj As Object
    Dim bytes() As Byte
    Dim hash() As Byte
    Dim i As Integer
    Dim result As String

    ' استخدام كائن MSXML2
    Set xmlObj = CreateObject("System.Security.Cryptography.SHA256Managed")

    ' تحويل النص إلى مصفوفة بايتات
    bytes = StrConv(Password, vbFromUnicode)

    ' حساب التجزئة
    hash = xmlObj.ComputeHash_2(bytes)

    ' تحويل النتيجة إلى سلسلة نصوص
    For i = LBound(hash) To UBound(hash)
        result = result & LCase(Right("0" & Hex(hash(i)), 2))
    Next i

    ' إعادة النتيجة النهائية
    HashPasswordSHA256 = result

    ' تنظيف الموارد
    Set xmlObj = Nothing
End Function

Public Function HashPassword(strPassword As String, Optional ByRef strSalt As String) As String
    If strSalt = "" Then strSalt = GenerateSalt()
    
    On Error GoTo UseMD5

    ' المحاولة الأولى باستخدام SHA-256
    HashPassword = HashPasswordSHA256(strPassword & strSalt)
    Exit Function

UseMD5:
    HashPassword = MD5Hash(strPassword & strSalt)
End Function

Public Sub UpdateExistingPasswords()
    On Error GoTo ErrHandler

    Dim rs As DAO.Recordset
    Dim strSalt As String

    ' تحديث جدول المستخدمين النشطين
    Set rs = CurrentDb.OpenRecordset("SELECT UserID, UserPassword, Salt FROM tblUsers", dbOpenDynaset)
    Do While Not rs.EOF
        If IsNull(rs!salt) Then
            strSalt = GenerateSalt()
            
            rs.Edit
                rs!salt = strSalt
                rs!UserPassword = HashPassword(rs!UserPassword, strSalt)
            rs.Update
            
            LogEvent "تم تحديث مستخدم: " & rs!UserID, Information, "UpdateExistingPasswords"
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    ' تحديث جدول المستخدمين المعلقين
    Set rs = CurrentDb.OpenRecordset("SELECT UserID, UserPassword, Salt FROM tbl01PendingUsers", dbOpenDynaset)
    Do While Not rs.EOF
        If IsNull(rs!salt) Then
            strSalt = GenerateSalt()
            rs.Edit
            rs!salt = strSalt
            rs!UserPassword = HashPassword(rs!UserPassword, strSalt)
            rs.Update
            LogEvent "تم تحديث مستخدم معلق: " & rs!UserID, Information, "UpdateExistingPasswords"
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    MsgBox "تم تحديث كلمات المرور القديمة بنجاح.", vbInformation
    Exit Sub

ErrHandler:
    HandleError "UpdateExistingPasswords", "حدث خطأ أثناء تحديث كلمات المرور"
    If Not rs Is Nothing Then rs.Close
End Sub

Public Sub UpdateExistingPasswordsByUserID(lngUserID As Long)
    On Error GoTo ErrHandler

    Dim rs As DAO.Recordset
    Dim strSalt As String

    ' تحديث جدول المستخدمين النشطين
    Set rs = CurrentDb.OpenRecordset("SELECT UserID, UserPassword, Salt FROM tblUsers WHERE UserID = " & lngUserID, dbOpenDynaset)
    If Not rs.EOF Then
        If IsNull(rs!salt) Then
            strSalt = GenerateSalt()
            rs.Edit
            rs!salt = strSalt
            rs!UserPassword = HashPassword(rs!UserPassword, strSalt)
            rs.Update
            LogEvent "تم تحديث مستخدم: " & rs!UserID, Information, "UpdateExistingPasswordsByUserID"
        End If
    End If
    rs.Close
    Set rs = Nothing

    ' تحديث جدول المستخدمين المعلقين
    Set rs = CurrentDb.OpenRecordset("SELECT UserID, UserPassword, Salt FROM tbl01PendingUsers WHERE UserID = " & lngUserID, dbOpenDynaset)
    If Not rs.EOF Then
        If IsNull(rs!salt) Then
            strSalt = GenerateSalt()
            rs.Edit
            rs!salt = strSalt
            rs!UserPassword = HashPassword(rs!UserPassword, strSalt)
            rs.Update
            LogEvent "تم تحديث مستخدم معلق: " & rs!UserID, Information, "UpdateExistingPasswordsByUserID"
        End If
    End If
    rs.Close
    Set rs = Nothing

    MsgBox "تم تحديث كلمة المرور بنجاح للمستخدم: " & lngUserID, vbInformation
    Exit Sub

ErrHandler:
    HandleError "UpdateExistingPasswordsByUserID", "حدث خطأ أثناء تحديث كلمة المرور للمستخدم: " & lngUserID
    If Not rs Is Nothing Then rs.Close
End Sub

طبعا الدوال الاخيرة : 
 

Public Sub UpdateExistingPasswords()

Public Sub UpdateExistingPasswordsByUserID(lngUserID As Long)

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


وجميعنا يعلم ان الامان هو : مسألة نسبية 
ولكن الجميع يحاول جاهد تأمين البيانات وتأمين الاكواد اما من العبث الغير مقصود او العبث المقصود او حفظا للحقوق

موضوع التأمين يختلف حسب توجهات كل شخص فى النهاية

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

  • Like 1
قام بنشر
1 ساعه مضت, ابو جودي said:

طيب كنت قد كتبت داله تعتمد على تشفير : MD5

تفتكر هيكون آمن إذا استخدم لوحده بدون ( Salt ) ؟؟

وحبة الملح دي هي اللي ممكن تزيد من مستوى الحماية في كلمات المرور ..

  • Haha 1
قام بنشر
7 دقائق مضت, ابوخليل said:

ولماذا ادخل من اجل احذف شيئا

الأسرع احذف البرنامج من جذوره واجهات وجداول وكل ما يحويه مجلد البرنامج .. وأريح راسي  .. وراس صاحب البرنامج :biggrin:

ما هو لو حد رخم زى حلاتى ممكن يكون عامل حماية للمجلد من حذف ما فيه :biggrin:

  • Haha 1
قام بنشر
الان, ابو جودي said:

ما هو لو حد رخم زى حلاتى ممكن يكون عامل حماية للمجلد من حذف ما فيه :biggrin:

تعملها ويطلع منك :biggrin:

  • Haha 1
قام بنشر
3 دقائق مضت, Foksh said:

تعملها ويطلع منك :biggrin:

اتفضل الطريقة

 

4 دقائق مضت, Foksh said:

تفتكر هيكون آمن إذا استخدم لوحده بدون ( Salt ) ؟؟

وحبة الملج دي هي اللي ممكن تزيد من مستوى الحماية في كلمات المرور ..

نعم بدون حبة الملح Salt :biggrin: ولحالة آمن 

ولكن حبة الملح هذه تزيد من قوة التأمين فى فى التشفير جدا جدا جدا

  • Like 2
قام بنشر
21 دقائق مضت, ابو جودي said:

ما هو لو حد رخم زى حلاتى ممكن يكون عامل حماية للمجلد من حذف ما فيه :biggrin:

 تسلم .. بل صقر ..

عندي برنامج صغير جدا يحذف حماية ميكروسوف نفسها من جذورها مع مجلداتها  اقصد ببرنامج حماية اوفيس اللي هو  microsoft Defender

بترجع تقول اعمل حماية ما تقدر تدخل فلاشة :biggrin:

ونستمر هكذا انا ارفع وانت تشوت ...:angry:

 

  • Haha 2
قام بنشر

استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل 

برنامج الحماية من مايكروسوفت"mecrosoft Defender" لا ولن يتعارض مع طريقة حماية المجلد او ما بداحل المجلد
لان الحماية هذه لا تعتمد على برامج خارجيه بل تعتمد على اعدادت الحماية الحاصة بالويندوز نفسه

فى هذا الموضوع تحديدا لما احاول الاعتماد على اى برامج طرف ثالث 

منذ ساعه, شايب said:

احسنت يا محمد الموضوع حرك المياه الراكدة واخرج لنا اكواد ودوال منكم ومن فادي قطعا ستعود بالفائدة لكل مهتم بموضوع الحماية

 

جزاكم الله خيرا استاذى الجليل و معلمى القدير الاستاذ @شايب :fff:


شرف لى ان تنال مشاركاتى البسيطة والضئيلة بجوار مشاركات اساتذى العظماء استحسان اساتذتى العظماء الذين اتعلم على اياديهم

بارك الله فيكم جميعا وبارك الله لكم فى اعماركم واعمالكم وجعل ما تقدمونه فى موازين اعمالكم ان شاء الله واسأله تعالى من فضله العظيم أن يكتبه لكم علم ينتفع به وصدقة جارية 

  • Like 1
قام بنشر
14 دقائق مضت, ابوخليل said:

 

ونستمر هكذا انا ارفع وانت تشوت ...:angry:

 

اللي قدر على دفندر  وجذوره كلها في وندوز ..

احتمال لا يقدر على مجلد محمي بواسطة وندوز 

انا عرضت لك مثال ليس الا .. انه كل شيء ممكن

في علم البرمجة نحذف كلمة : (مستحيل .. لا يمكن ) من قاموسنا

المستحيل اليوم  قد يصبح ممكنا غدا ..

نعم قلناها بالامس ونراها ايوم

 

  • Like 1
  • Haha 1
قام بنشر

طيب و بمناسبة الرفع والشوط

منذ ساعه, ابوخليل said:

بترجع تقول اعمل حماية ما تقدر تدخل فلاشة :biggrin:

 

والله مش هزعلك

اتفضل
1- Show And Hdie
لاخفاء واظهار الامر الخاص باخفاء واظهار الملفات والمجلدات

001.JPG.486972ffd95333d84b9a3ec69128b582.JPG

بعد الاخفاء سوف تكون بهذا الشكل
002.JPG.4b2d0862e6049ce54d83736117c3db66.JPG

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



2- usb Open And Lock
تفعيل / عدم تفعيل قراءة اى شئ من منفذ USB

عند استخدام : USB LOOK
لو عندك الف منفذ Usb 
ادخل بهم اى فلاشة او هردات محمولة لن يتم قرائتها مطلقا

 

usb Open And Lock.zip Show And Hdie.zip

  • Like 3
قام بنشر

تمام

انار الله دربك .. هذا ما اعنيه

وضعت الحماية ووضعت  تجاوز الحماية

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

يوجد حل احتياطي أقوى لمن كان في عمل مشترك لزيادة الاطمئنان :

وهو تعيين كلمة مرور وندوز .. وضبط فترة الإسبات

أما اذا قاعدة البيانات على الشبكة فكان الله في عونهم

  • Like 1
قام بنشر
43 دقائق مضت, ابوخليل said:

اذا قاعدة البيانات على الشبكة فكان الله في عونهم

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


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

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

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

وممكن احفاء كلمة مرور الاتصال لجهاز السيرفر عن المستخدمين اساسا
وتتم عملية الاتصال مبدئيا بجهاز السيرفر من خلال حفظ معلومات الاتصال (
حفظ بيانات الاعتماد ) من خلال اول نموذج

وكل ما سبق موجود فى المنتدى

  • Like 1
قام بنشر
17 دقائق مضت, ابو جودي said:

وتتم عملية الاتصال مبدئيا بجهاز السيرفر من خلال حفظ معلومات الاتصال (حفظ بيانات الاعتماد ) من خلال اول نموذج

هذا الموضوع خصيصا قد يكون جديد بهذا الشكل على مجتمع مستخدمين قواعد بيانات أكسس
 


 

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information