![]() |
|
كيف احمي موقعي من الـ sql enjection - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم برمجة وتطوير المواقع (http://vb4arb.com/vb/forumdisplay.php?fid=51) +--- قسم : قسم ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=52) +---- قسم : قسم اسئلة ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=53) +---- الموضوع : كيف احمي موقعي من الـ sql enjection (/showthread.php?tid=8549) الصفحات:
1
2
|
كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 كيف احمي موقعي من الـ sql enjection ارجو النقاش للفائدة فالمخربين يتعاونون للتخريب ونحن هنا يدا بيد للمساعدة بالحماية.بارك الله فيكم جميعا من اولكم لاخركم كيف احمي موقعي من الـ sql enjection - ربيع - 20-04-13 نحمده ونصلي على رسوله الكريم باستخدام الـ stored procedures و parameters، تستطيع تفادي ذلك إن شاء الله.... كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 طيب اخي الكريم .. مارايك حول الكلمات الممنوعة هل يجدي نفعا ام لا. مثلا نقوم بتعبئة ملف نصي بتلك الكلمات مثل dim,public,script الى اخره ثم نتفحص المكتوب بمربع النص هل يحتوي احدى هذه الكلمات..هل هذا يفيد ام لا؟ ايضا الاستغلال هل هو من خلال الرابط بحيث تضاف له قيمة سواء علامة تنصيص او غيرها ام من الادوات ؟ وهل هذهالثغرة لم تسد؟ هل يعقل انها موجودة حتى بـ sql server 2008 r2 ؟ كنت اظن ان الحماية منها تتطلب اجراءات وملفات ودوال كثيرة.. طيب سؤال آخر: كيف الى معرفة كافة القيم الموجودة بالرابط اقصد QueryString جربت الكود التالي ولم يفلح كود : If Request.QueryString.ToString.Contains("'") Then بارك الله فيكم جميعا. كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 لقد تذكرت موضوع [h=1]{ معلومة} .. معلومات Request[/h]هل التحقق من المعلومات هذه مثل Request.Url.PathAndQuery ذو فائدة؟ كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 كتبت بملف نصي كود : dimpublicكود : Dim sf As String = "" sf = My.Computer.FileSystem.ReadAllText(Server.MapPath("~/pat/tt.txt"))كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 عدلت قليلا كود : Dim sf As String = "" sf = My.Computer.FileSystem.ReadAllText(Server.MapPath("~/pat/tt.txt"))كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 بالنسبة لمربع النص كود : Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click كيف احمي موقعي من الـ sql enjection - ربيع - 20-04-13 الثغرة ما زالت موجودة، وستبقى دائما، ولتفاديها نستخدم: الـ stored procedures أو parameters أو linq. لو افترضنا ان تطبيقنا (تطبيق سطح مكتب أو تطبيق ويب)، به نموذج لتسجيل الدخول، وكان كود الاستعلام كـ: كود : [align=left]"select * from users where uname like '" & textbox.text & "' pass like '" & textbox2.text & "'"ثم أدخل المستخدم في مربع النص الأول كلمة: user، مثلا، ثم في مربع النص الثاني حقن هذه الجملة: كود : [align=left]123' or 'd' = 'dسوف تصبح جملة الاستعلام هكذا: كود : [align=left]"select * from users where username like 'user' pass like '123' or 'd' = 'd'"النتيجة: كود : [align=left]messagebox.show("تم تسجيل الدخول بنجاح")الاستعلامات المخزنة stored procedures، تتعامل مع وسيطات يتم استخدامها كنصوص وليس كأوامر sql.... جملة الاستعلام السابقة تصبح: كود : [align=left]create procedure login(@un nvarchar(), @pas nvarchar())الـ QueryString: كود : [align=left]For Each qs As String In Request.QueryString.AllKeysكيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 بارك الله فيك وزادك قدرا وفضلا وعلما ينفعك دنيا واخرى. كيف احمي موقعي من الـ sql enjection - سعود - 20-04-13 طيب اخي كيف اعدل على التالي ليكون استعلام مخزن كود : 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 |