الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ عند أدخال Semi Colon ' فى textbox

بدأه hamada252_eg في 10 يونيو 2011 · 10 رد · 691 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

عند ادخال نص فى textbox ويكون بداخل هذا النص ' Semi Colon وبلضغط على زر ادخال تظهر رسالة خطأ ويظهر بها ال ' Semi Colon

مثال للنص : family's

#2

أولاً هذه لا تدعى semi colon. الـsemi colon هي الفاصلة المنقوطة

;

أما ' فهي تدعى single quote وصديقتها " تدعى double quote.

ثانياً:

هناك حلول عدة لهذا الموضوع، ويعتمد أيها تستخدم على الشئ الذي تفعله بهذا النص. أن أخمن أنك تضعها داخل جملة SQL، أليس كذلك؟

إذا كان هذا هو بالفعل ما تفعله فعلي أن أحذرك أن كودك كما هو سيكون عرضة لهجوم الهاكر عن طريق أسلوب يدعى SQL Injection (استخدم قريباً لاختراق سيرفرات شركة سوني). في هذه الحالة أسهل وأفضل طريقة لتجنب هذه المشكلة هي تجنب بناء جمل SQL يدوياً (عن طريق جمع الـstring معاً) واستبدالها بأسلوب استخدام الـparameters.

#3

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي عند الادخال


Regex.Replace(TextBox1.Text, "'", "''")

.:: Wish to become better and better ::.

#5

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب اخي .. بالتوفيق ..

.:: Wish to become better and better ::.

#6
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي عند الادخال


Regex.Replace(TextBox1.Text, "'", "''")

هذا الكود سيعمل. ولكنه قد لا يحميك بشكل كامل من الـsql injection (إذا كان ما يستخدمه السائل بالفعل هو SQL)

#7

السلام عليكم ورحمه الله وبركاته

اخي System Down ممكن توضح ليش؟!!

.:: Wish to become better and better ::.

#8

لأنه يمكنك الاستعاضة عن الـquote أحياناً بقيم أخرى. مثل قيم الـHEX. وأنا متأكد أن هناك طرق أخرى لا أعرفها. لذا يبقى الخيار الأسلم هو عدم أخذ القيم النصية بتاتاً من المستخدم والاعتماد على الـparameterization. وهو لحسن الحظ سهل.

#9

السلام عليكم ورحمه الله وبركاته

اخي وكيف يمكن الاستعاضه عن الفاصله العلويه؟!!

.:: Wish to become better and better ::.

#10

هناك عدة طرق للالتفاف حول طريقة استبدال النصوص. انظر إلى هذا الموضوع:

http://stackoverflow.com/questions/5174768/replaceall-quotes-with-backslashed-quotes-is-that-enough

عندما تقوم بعملية استبدال نصوص فأنت تحاول أن تخمن ما قد يريد فعله المخترق. ولكن دائماً علينا أن نفترض أن المخترق أذكى منا، لذا قد يعرف طريقة لا نعرفها نحن. إذن نستخدم الطريقة الأسلم وهي الـparametrization

#11

السلام عليكم ورحمه الله وبركاته

اخي خلاص مو مشكلة انا مش قصدي اني اصر على اجابتي بس هي حل للسؤال وانا ماقلت ان استخدام الوسائط مش تمام, المهم بالتوفيق للجميع ..

.:: Wish to become better and better ::.

مواضيع مشابهة