"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تمنع الاستعلامات المعلمة في SQL هجمات حقن SQL؟

كيف تمنع الاستعلامات المعلمة في SQL هجمات حقن SQL؟

نشر في 2025-02-06
تصفح:627

How Do Parameterized Queries in SQL Prevent SQL Injection Attacks?

sql الاستعلام المعلمة وعلامة الاستفهام

]

عند البحث عن مستندات SQL ، قد تواجه علامة استفهام (؟) في استفسارك. تمثل هذه العناصر النائبة استعلامات معلمة وتستخدم على نطاق واسع لتنفيذ SQL الديناميكي في البرامج.

الاستعلام المعلمات له العديد من المزايا. أنها تبسط التعليمات البرمجية عن طريق فصل قيم المعلمة عن الاستعلام نفسه ، مما يجعله أكثر كفاءة ومرونة. بالإضافة إلى ذلك ، فإنها تعزز الأمن عن طريق منع هجمات حقن SQL.

على سبيل المثال ، في مثال على الكود الزائف:

] النتيجة = cmd.execute ()
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = 7")
result = cmd.Execute()

ODBCCOMMAND cmd.parameters.add (7) النتيجة = cmd.execute ()
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = ?")
cmd.Parameters.Add(7)
result = cmd.Execute()

string s = getStudentName () cmd.CommandText = "SELECT * from student cmd.execute ()
string s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE (name = '"   s   "')"
cmd.Execute()

s = getStudentName () cmd.CommandText = "حدد * من الطلاب حيث الاسم =؟" cmd.parameters.add (s) cmd.execute ()
s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE name = ?"
cmd.Parameters.Add(s)
cmd.Execute()

أو ، يستخدم Microsoft SQL Server معلمات مسماة ، مما يحسن قابلية القراءة والوضوح:

cmd.text = "حدد thinga من tablea where thingb = varname" cmd.parameters.addwithValue ("@varname" ، 7) النتيجة = cmd.execute ()
 
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3