# Abdal XSS AI Engine ## 🎤 ترجمه اطلاعات نرم افزار - [English](README.md) - [فارسی](README.fa.md)

## 💎 هدف اصلی مدل هوش مصنوعی Abdal XSS AI Engine با هدف ارائه یک راهکار پیشرفته و رایگان برای مقابله با حملات XSS در ایران توسعه داده شده است. با توجه به نبود ابزارهای مناسب سایبری داخلی، این مدل به عنوان یک نیاز ضروری برای افزایش امنیت در فضای سایبری ایران طراحی شده تا از حملات XSS جلوگیری کند و کاربران ایرانی بتوانند از حفاظت بهتری برخوردار شوند. ## 🛠️ پیش نیاز برای برنامه نویسان - **Python 3.7 یا بالاتر** - **Flask** (برای ساخت RESTful API) - **TensorFlow** (مدل‌های یادگیری عمیق) - **Scikit-learn** (برای پیش‌پردازش داده‌های متنی و بردار سازی TF-IDF) - **Pandas** (برای مدیریت داده‌ها در مقیاس بزرگ) - **درک عمیق از امنیت وب و حملات XSS** - **Git** (کنترل نسخه و مدیریت مخازن) ### 🔥 پیشنیازها - **Python 3.7 یا بالاتر** - **Flask** - **TensorFlow** - **Scikit-learn** - **Pandas** - **Pickle** ## ✨ قابلیت ها - قابلیت پردازش صدها هزار الگوی XSS و شناسایی حملات جدید. - استفاده از مدل یادگیری عمیق با چند لایه Dense و Dropout. - آموزش مدل با استفاده از مجموعه داده ترکیبی از فایل‌های CSV. - استفاده از تکنیک TF-IDF برای استخراج ویژگی‌های متنی از حملات XSS. - قابلیت افزایش دقت مدل با داده‌های جدید و به‌روز رسانی مداوم. - پشتیبانی از بهینه‌سازی مدل با استفاده از روش Adam و معیار دقت (accuracy). - ذخیره مدل نهایی و وکتورایزر برای استفاده در آینده و استقرار در محیط‌های مختلف. ## 📝️ چگونه کار می کند ؟ با استفاده از کد زیر می‌توانید از مدل به صورت یک API برای شناسایی حملات XSS استفاده کنید ```python from flask import Flask, request, jsonify import tensorflow as tf import pickle import numpy as np app = Flask(__name__) # Load the model and vectorizer model = tf.keras.models.load_model('Abdal_XSS_AI_Engine.h5') with open('vectorizer.pkl', 'rb') as f: vectorizer = pickle.load(f) @app.route('/predict', methods=['POST']) def predict(): data = request.json sentences = data['sentences'] # Preprocess the input data using the vectorizer X_new = vectorizer.transform(sentences).toarray() # Make predictions predictions = (model.predict(X_new) > 0.5).astype(int) # Prepare and return the response response = { 'predictions': ['XSS Detected' if pred == 1 else 'No XSS Detected' for pred in predictions.flatten()] } return jsonify(response) if __name__ == '__main__': app.run(debug=True) ``` علاوه بر API، می‌توانید از مدل برای خواندن داده‌ها از یک فایل متنی و شناسایی حملات استفاده کنید. کد زیر نمونه‌ای از این استفاده است: ```python import os import tensorflow as tf import pickle # Disable oneDNN custom operations os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0' # Set TensorFlow logging level to 'ERROR' to suppress the info and warning messages os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # Check if model and vectorizer files exist model_path = 'Abdal_XSS_AI_Engine.keras' vectorizer_path = 'vectorizer.pkl' if not os.path.exists(model_path): raise FileNotFoundError(f"Model file not found: {model_path}") if not os.path.exists(vectorizer_path): raise FileNotFoundError(f"Vectorizer file not found: {vectorizer_path}") # Load the model from the Keras format model_name = "Abdal XSS AI Engine" model = tf.keras.models.load_model(model_path) # Load the vectorizer with open(vectorizer_path, 'rb') as f: vectorizer = pickle.load(f) # Read new data (sentences) from a file (e.g., 'attack-xss-payload.txt') input_file = 'attack-xss-payload.txt' if not os.path.exists(input_file): raise FileNotFoundError(f"Input file not found: {input_file}") with open(input_file, 'r', encoding='utf-8') as file: new_sentences = [line.strip() for line in file if line.strip()] # Reading each line from file # Check if any sentence exists for prediction if not new_sentences: raise ValueError("No data available for prediction.") # Preprocess the new data using the loaded TF-IDF vectorizer X_new = vectorizer.transform(new_sentences).toarray() # Predict using the loaded model predictions = (model.predict(X_new) > 0.5).astype(int) # Print predictions for i, sentence in enumerate(new_sentences): print(f"Sentence: {sentence}") print(f"Prediction: {'XSS Detected' if predictions[i] == 1 else 'No XSS Detected'}\n") ``` ### نحوه‌ی بارگذاری مدل برای TensorFlow برای استفاده از این مدل در پروژه‌ی TensorFlow، کافی است کد زیر را اجرا کنید: ```python import tensorflow as tf # Load the saved model model = tf.keras.models.load_model('Abdal_XSS_AI_Engine') print("✅ Model loaded successfully!") ``` ## ❤️ کمک به پروژه https://alphajet.ir/abdal-donation ## 🤵 برنامه نویس دست ساز با عشق توسط ابراهیم شفیعی (ابراشا) E-Mail = Prof.Shafiei@Gmail.com Telegram: https://t.me/ProfShafiei ## ☠️ گزارش خطا اگر با مشکلی در پیکربندی مواجه هستید یا چیزی آنطور که انتظار دارید کار نمی‌کند، لطفا از Prof.Shafiei@Gmail.com استفاده کنید.طرح مشکلات بر روی GitLab یا Github نیز پذیرفته می‌شوند.