سؤال

هل هناك طريقة مضمنة للهروب من إدخال المستخدم في جافا باستخدام JDBC؟شيء مشابه لإصدار php mysql_real_escape() وظيفة.ما هي أفضل طريقة للتحقق من صحة الإدخال؟

هل كانت مفيدة؟

المحلول

إذا كنت تقصد كيف تتأكد من عدم إمكانية استخدام مدخلات المستخدم في هجمات حقن SQL، فإن طريقة القيام بذلك (والطريقة التي يجب بها كتابة كل SQL في JDBC) هي استخدام البيانات المعدة.سوف يتعامل JDBC تلقائيًا مع أي هروب ضروري.

http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html

نصائح أخرى

فقط للإضافة إلى اقتراح @skaffman، فإن ReadyStatements تحل المشكلة بالنسبة لغالبية التطبيقات.ومع ذلك، هناك بعض التطبيقات حيث يتم أخذ (أجزاء من) عبارات SQL (بدلاً من قيم المعلمات فقط) من إدخال المستخدم (على سبيل المثال، معلمة URL تحتوي على عبارة ORDER BY).فقط تأكد من تعقيمها أيضًا، أو الأفضل من ذلك، تجنب مثل هذه التصميمات إن أمكن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top