أكيد سمعنا كتير عن ال SQL Injection وقرأنا عنه كتير ، فاحنا هنقدملكم انهاردة دليلكم المختصر والوافي عنه
فورقة وقلم وتعالوا نتكلم عن ايه هو وليه بنسمع عنه كتير وازاي كمبرمج احمي التطبيقات بتاعتي تجاه النوع دا من الهجمات.
SQL Injection
الـ SQL Injection هو من أشهر أنواع الهجمات الأمنية على تطبيقات الويب و دا لسببين:
- شيوع ال SQL Injection vulnerabilities أو الثغرات من النوع دا في التطبيقات لأنه أي موقع Web بيتعامل مع قواعد البيانات بـ Code معين معرض ان الـ Code دا يكون فيه هذه الثغرات وما علي الـ Attacker أو المهاجم انه يلاقيها ويستغلها.
- لأنه بيستهدف دايمًا قواعد البيانات واللي دايمًا بتشيل بيانات مهمة ممكن الـ Hacker يستغلها.
طريقة الـ SQL Injection
النوع دا من الهجمات معتمد علي ال dynamic sql queries اللي بستخدم String concatenation زي المثال دا
String query = "SELECT account_balance FROM user_data WHERE user_name = "
+ request.getParameter("customerName");
try {
Statement statement = connection.createStatement( ... );
ResultSet results = statement.executeQuery( query );
}
هنا اقدر كمهاجم ابعت sql query زي
💡
'' OR '1'='1'
مكان ال customername والكود مش هيقدر يفرق لأنه الاتنين بالنسبة ليه Strings لكن وقت التنفيذ في قاعدة البيانات الquery ده هيتنفذ وهيرجع كل بيانات العملاء بدل ما يرجع عميل واحد!
طرق الحماية تجاه الـ Sql Injection
في 3 طرق وقاية أساسية تجاه النوع دا من الهجمات:
هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط
هل لديك حساب؟ تسجيل الدخول