
كشف هجمات SQL/XSS على واجهات برمجة تطبيقات الويب باستخدام الذكاء الاصطناعي
يهدف هذا المشروع إلى كشف حقن SQL وXSS في طلبات/معاملات واجهات برمجة التطبيقات (API) باستخدام تعلم الآلة.
يهدف هذا المشروع إلى كشف حقن SQL وXSS في طلبات ومعاملات واجهات برمجة التطبيقات (API) باستخدام تقنيات تعلم الآلة.
الهدف هو إنشاء خط أنابيب (pipeline) بسيط يتيح:
benign أو sql_injection أو xss،تجهيز مجموعة البيانات (dataset)
يحتوي الملف generated_payloads.csv في مجلد data/ على أمثلة لطلبات واجهات برمجة تطبيقات موسومة (sql_injection, xss, benign) من مصادر خارجية مثل Kaggle أو تم توليدها محليًا.
تنظيف وتقسيم مجموعة البيانات
python scripts/clean_and_split.py
يقوم النص البرمجي بـ:
إزالة التكرارات والصفوف الفارغة،
تنظيف النصوص (المسافات، فواصل الأسطر، علامات التبويب)،
توحيد التسميات (labels)،
ويقوم بتوليد:
data/combined.csv : مجموعة بيانات كاملة ومنظفة،
data/train.csv : بيانات التدريب (80%)،
data/test.csv : بيانات الاختبار (20%).
python scripts/train_model.py
يستخدم النموذج خط أنابيب (pipeline) للتعلم الآلي (ML):
TF-IDF Vectorizer (TfidfVectorizer) : يحوّل طلبات النصوص إلى متجهات رقمية، من خلال التقاط أهمية الكلمات أو الرموز المشبوهة.
Logistic Regression (LogisticRegression) : مُصنِّف خاضع للإشراف يتعلم ربط متجهات TF-IDF بالفئات sql_injection أو xss أو benign.
بعد التدريب، يُحفظ النموذج في مجلد models، ويمكن استخدامه لاحقًا للتنبؤ بفئة طلب جديد.
pytest -v -s tests/test_pipeline.py
يتحقق الاختبار من أن:
النموذج قابل للتحميل،
يتنبأ بشكل صحيح بعدة أمثلة بسيطة،
لا تظهر أي أخطاء في خط الأنابيب.
pip3 install -r requirements.txt
المكتبات
pandas
scikit-learn
joblib
pytest