تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف احمي موقعي من الـ sql enjection
#1
كيف احمي موقعي من الـ sql enjection

ارجو النقاش للفائدة فالمخربين يتعاونون للتخريب Smile ونحن هنا يدا بيد للمساعدة بالحماية.
بارك الله فيكم جميعا من اولكم لاخركم
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#2
نحمده ونصلي على رسوله الكريم

باستخدام الـ stored procedures و parameters، تستطيع تفادي ذلك إن شاء الله....
الرد }}}
تم الشكر بواسطة:
#3
طيب اخي الكريم .. مارايك حول الكلمات الممنوعة هل يجدي نفعا ام لا.
مثلا نقوم بتعبئة ملف نصي بتلك الكلمات مثل dim,public,script الى اخره ثم نتفحص المكتوب بمربع النص هل يحتوي احدى هذه الكلمات..هل هذا يفيد ام لا؟
ايضا الاستغلال هل هو من خلال الرابط بحيث تضاف له قيمة سواء علامة تنصيص او غيرها ام من الادوات ؟
وهل هذهالثغرة لم تسد؟ هل يعقل انها موجودة حتى بـ sql server 2008 r2 ؟
كنت اظن ان الحماية منها تتطلب اجراءات وملفات ودوال كثيرة..
طيب سؤال آخر:
كيف الى معرفة كافة القيم الموجودة بالرابط اقصد QueryString جربت الكود التالي ولم يفلح
كود :
If Request.QueryString.ToString.Contains("'") Then            
Response.Write("<div align=center><h2>لقد كتبت قيمة ممنوعة بالرابط</h2></div>")
        End If


بارك الله فيكم جميعا.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#4
لقد تذكرت موضوع
[h=1]{ معلومة} .. معلومات Request[/h]هل التحقق من المعلومات هذه مثل
Request.Url.PathAndQuery
ذو فائدة؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#5
كتبت بملف نصي
كود :
dimpublic
script
function
'
"
get
post
item
وبحدث تحميل الصفحة كتبت
كود :
Dim sf As String = ""        sf = My.Computer.FileSystem.ReadAllText(Server.MapPath("~/pat/tt.txt"))
        For Each st In Request.Url.PathAndQuery.ToString.Split("?")
            For Each t In sf
                If st.ToString.Contains(t) Then
                    Response.Write("<div align=center><h2>لقد كتبت قيمة ممنوعة بالرابط</h2></div>")
                End If
            Next
        Next
اريد ان يطبع رسالة الخطا مرة فكيف ذلك؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#6
عدلت قليلا
كود :
Dim sf As String = ""        sf = My.Computer.FileSystem.ReadAllText(Server.MapPath("~/pat/tt.txt"))
        For Each st In Request.Url.PathAndQuery.ToString.Split("?")
            For Each t In sf
                If st(1).ToString.Contains(t) Then
                    Response.Write("<div align=center><h2>لقد كتبت قيمة ممنوعة بالرابط</h2></div>")
                End If
            Next
        Next
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#7
بالنسبة لمربع النص
كود :
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click        
lbl.Visible = False
        lbl.Text = ""




        For Each st In TextBox1.Text
            For Each t In sf
                If st.ToString.Contains(t) Then
                    lbl.Text = "توجد قيمة منوعة"
                    lbl.ForeColor = Drawing.Color.Red
                    lbl.Visible = True
                End If
            Next
        Next




    End Sub
ارجو ابداء الاراء
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#8
الثغرة ما زالت موجودة، وستبقى دائما، ولتفاديها نستخدم: الـ stored procedures أو parameters أو linq.

لو افترضنا ان تطبيقنا (تطبيق سطح مكتب أو تطبيق ويب)، به نموذج لتسجيل الدخول، وكان كود الاستعلام كـ:

كود :
[align=left]"select * from users where uname like '" & textbox.text & "' pass like '" & textbox2.text & "'"
[/align]

ثم أدخل المستخدم في مربع النص الأول كلمة: user، مثلا، ثم في مربع النص الثاني حقن هذه الجملة:
كود :
[align=left]123' or 'd' = 'd
[/align]

سوف تصبح جملة الاستعلام هكذا:
كود :
[align=left]"select * from users where username like 'user' pass like '123' or 'd' = 'd'"
[/align]

النتيجة:
كود :
[align=left]messagebox.show("تم تسجيل الدخول بنجاح")
[/align]

الاستعلامات المخزنة stored procedures، تتعامل مع وسيطات يتم استخدامها كنصوص وليس كأوامر sql....
جملة الاستعلام السابقة تصبح:
كود :
[align=left]create procedure login(@un nvarchar(), @pas nvarchar())
as
select * from users where uname = @un and pass = @pas
[/align]

الـ QueryString:
كود :
[align=left]For Each qs As String In Request.QueryString.AllKeys
    If Request.QueryString(qs).Contains("'") Then
        Response.Write("<div align=center><h2>لقد كتبت قيمة ممنوعة بالرابط</h2></div>")
        Exit For
    End If
Next qs
[/align]
الرد }}}
تم الشكر بواسطة:
#9
بارك الله فيك وزادك قدرا وفضلا وعلما ينفعك دنيا واخرى.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#10
طيب اخي كيف اعدل على التالي ليكون استعلام مخزن
كود :
Dim cm As New OleDbCommand("select un,ps from tb where un=@un and ps=@ps", con)        cm.Parameters.AddWithValue("@un", OleDbType.VarChar).Value = un.Text
        cm.Parameters.AddWithValue("@ps", OleDbType.VarChar).Value = ps.Text
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف اجعل موقعي متوافق مع الجوال nabil.1710 1 1,602 08-04-19, 02:40 AM
آخر رد: حريف برمجة
  اين ارفع موقعي المصمم بـ ASP.net + SQLserver AbaAlHaitham 6 3,241 09-12-12, 11:18 AM
آخر رد: الميسري

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم