تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نقاش : هل نستخدم oop ونجعل البرنامج عرضه للأختراق ( SQL INJECTION)
#1
السلام عليكم اخواني Smile

قبل وضع استفساري سأقوم بتعريف بسيط عن كيفيه أختراق البرنامج من خلال جمل الاستعلام ( SQL INJECTION)
حتي يستفاد من ليس لديه معرفه بهذا الموضوع المهم
مثلا لو كتبت جمله استعلام بسيطه بهذا الشكل
كود :
SELECT * FROM users WHERE name = ' + userName + '
يمكن لمستخدم برنامجك حقن جمله الاستعلام بكل سهوله فكل ما عليه ان يكتب بدلا من الاسم
كود :
a' or 't'='t
فتصبح جمله الاستعلام بعد ادخال القيمه من المستخدم بهذا الشكل
كود :
SELECT * FROM users WHERE name = 'a' OR 't'='t'
وللمزيد عن هذا الموضوع اطلع علي wikipedia

طبعا يمكن تفادي هذه المشكله اما بأستخدام الاجراءات المخزنه(Stored procedure) او استخدام البارمترات ( parameters )

الي هنا سنبدأ في النقاش فرضا انني استخدم قاعده بيانات اكسس وبالتالي سنفقد امكانيه استخدام الاجراء المخزن (Stored procedure)
لم يتبقي لي الاطريقه البارمترات ( parameters )

فرضا انني احببت الاستفاده من oop لعمل فانكشن للحذف والاضافه والتعديل يمكن استخدامها في جميع برامجي
وقمت بأنشاء كلاس وكتبت به الداله
كود :
Public Function pross(ByVal sql As String) As Boolean
        cmd.Connection =cn
        cmd.CommandType = CommandType.Text
        cmd.CommandText = sql
        connect.opendb()
        Try
            cmd.ExecuteNonQuery()
            connect.closedb()
            Return True
        Catch ex As Exception
            connect.closedb()
            MsgBox(ex.Message)
            Return False

        End Try
    End Function

وهكذا يمكن تنفيذ الحذف اوالاضافه اوالتعديل بكود بسيط
كود :
Dim p As New Class1
        Dim sql As String
        sql = String.Format("insert into tb values({0} ,'{1}' ,'{2}')", TextBox1.Text, TextBox2.Text, TextBox3.Text)
        If p.pross(sql) = True Then
            MsgBox("done", MsgBoxStyle.Information, "INS")
        End If

ولكن هنا نعود من جديد الي مشكله ( SQL INJECTION) حيث يفقد البرنامج حمايته ويمكن اختراقه

اعتذر عن الاطاله ولكن لها ضروره في هذا الموضوع المهم

ما هي الاقتراحات حتي نجمع بين oop وحمايه جمل الاستعلام من الحقن ؟؟؟
الرد }}}
تم الشكر بواسطة: سعود


الردود في هذا الموضوع
نقاش : هل نستخدم oop ونجعل البرنامج عرضه للأختراق ( SQL INJECTION) - بواسطة ابو عمر - 25-09-12, 05:47 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [SQL] استفسار عن طريقة تحزم قواعد بيانات MSSQL مع البرنامج VB.NET2019 salemq 2 871 18-05-23, 03:02 AM
آخر رد: سعود
  قاعدتين بيانات من نوع اكسس في نفس البرنامج الوايلي 0 1,796 26-10-19, 09:26 AM
آخر رد: الوايلي
  [سؤال] ماهوا كود تعديل اسم المستخدم وكلمة المرور في البرنامج Ameer syria 13 11,555 02-01-18, 05:39 PM
آخر رد: سعود
  [VB.NET] ربط البرنامج بعدة اجهزة abid 11 16,179 19-08-17, 12:39 PM
آخر رد: osama.okn
  [VB.NET] تظهر رسالة توقف البرنامج dr_amr82 3 2,530 14-06-17, 03:12 AM
آخر رد: boudyonline
  مشكلة في تحزيم البرنامج samawi 2 2,386 23-04-17, 03:06 AM
آخر رد: samawi
  ما مدى تأثير هذا على سرعة البرنامج الجندى 8 4,393 22-02-15, 01:34 AM
آخر رد: الجندى
  [سؤال] طريقة صنع قاعدة بيانات وربطه في البرنامج hassan 6 4,358 06-02-15, 11:31 PM
آخر رد: ahmed saba
  [سؤال] ظهور هذه رسالة عند تشغيل البرنامج علي win7 abdo_awad 6 4,284 09-12-14, 04:13 PM
آخر رد: abototta
  [سؤال] ايهما اسرع الكود ام البرنامج ؟ Mido9 5 4,457 19-10-13, 10:42 PM
آخر رد: sherif khalid

التنقل السريع :


يقوم بقرائة الموضوع: