كيف احمي موقعي من الـ sql enjection
ارجو النقاش للفائدة فالمخربين يتعاونون للتخريب

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