تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف احمي موقعي من الـ sql enjection
#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]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
كيف احمي موقعي من الـ sql enjection - بواسطة DreamsDotNet - 20-04-13, 05:16 PM

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

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


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