حزمة أمان شاملة ومتقدمة لتطبيقات Laravel 12، توفر طبقة حماية كاملة ضد الثغرات والهجمات الإلكترونية الشائعة.
# تثبيت الحزمة
composer require salehye/laravel-security
# نشر ملفات الإعدادات والـ Migrations
php artisan vendor:publish --provider="Salehye\LaravelSecurity\SecurityServiceProvider"
بعد النشر، قم بتحرير ملف config/security.php لتخصيص إعدادات الحزمة:
return [
// تفعيل/تعطيل الحزمة بالكامل
'enabled' => env('SECURITY_ENABLED', true),
// حماية المدخلات
'input_protection' => [
'enabled' => true,
'auto_sanitize' => true,
],
// الجدار الناري
'firewall' => [
'enabled' => true,
'auto_block' => true,
'threat_threshold' => 70,
],
// معدلات الحد
'rate_limiting' => [
'enabled' => true,
'progressive' => [
'enabled' => true,
'threshold' => 3,
],
],
];
تطبيق الحزمة تلقائي عند تفعيل auto_protect. يمكن أيضاً تطبيق Middleware يدوياً:
// في app/Http/Kernel.php أو bootstrap/app.php
protected $middlewareAliases = [
'security.sanitize' => \Salehye\LaravelSecurity\Http\Middleware\SanitizeInputMiddleware::class,
'security.rate' => \Salehye\LaravelSecurity\Http\Middleware\AdvancedRateLimitMiddleware::class,
'security.headers' => \Salehye\LaravelSecurity\Http\Middleware\SecurityHeadersMiddleware::class,
];
استخدم Facade Security للوصول السهل لميزات الأمان:
use Salehye\LaravelSecurity\Facades\Security;
// تسجيل حدث أمان
Security::audit(auth()->user(), 'updated_settings', $request->all());
// حظر IP
Security::blockIp('192.168.1.1', 'هجوم Brute Force');
// التحقق من IP المحظور
if (Security::isBlocked($request->ip())) {
abort(403, 'الوصول مرفوض');
}
// تنظيف المدخلات
$clean = Security::sanitize($request->all());
// كشف التهديدات
$threats = Security::detectThreats($request);
use Salehye\LaravelSecurity\Rules\NoSqlInjectionRule;
use Salehye\LaravelSecurity\Rules\NoXssRule;
use Salehye\LaravelSecurity\Rules\PasswordStrengthRule;
public function rules(): array
{
return [
'username' => ['required', 'string', new NoSqlInjectionRule()],
'comment' => ['required', 'string', new NoXssRule()],
'password' => ['required', new PasswordStrengthRule()],
];
}
use Salehye\LaravelSecurity\Facades\Security;
// تسجيل الأحداث
Security::log('user_login', auth()->user(), ['ip' => request()->ip()]);
Security::logFailedLogin($email, ['ip' => request()->ip()]);
Security::logSensitiveAction('password_change', auth()->user());
// استرجاع السجلات
$logs = Security::getLogs(event: 'login', limit: 100);
// تنظيف السجلات القديمة
Security::cleanOldLogs(90); // الاحتفاظ بـ 90 يوم
# فحص أمني شامل
php artisan security:audit
# حظر IP
php artisan security:block 192.168.1.1 --reason="Brute force" --duration=24
# إلغاء حظر IP
php artisan security:unblock 192.168.1.1
# عرض تقرير أمني
php artisan security:report
# تنظيف السجلات القديمة
php artisan security:clean-logs --days=90
الحزمة توفر دوال مساعدة للاستخدام السهل:
// تنظيف المدخلات
sanitize($request->all());
// التحقق من IP المحظور
is_ip_blocked($ip);
// حظر IP
block_ip($ip, 'السبب');
// تسجيل حدث أمان
audit_log('user_login', auth()->user());
// كشف التهديدات
detect_threats($request);
// توليد API Key
generate_api_key();
// التحقق من HTTPS
is_secure_request();
// الحصول على IP العميل
get_client_ip();
// التحقق من Bot
is_bot();
// إخفاء البريد الإلكتروني
mask_email('user@example.com'); // u**r@example.com
// إخفاء الهاتف
mask_phone('0512345678'); // ******5678
إضافة تدقيق تلقائي للموديلات:
use Salehye\LaravelSecurity\Traits\Auditable;
class User extends Model
{
use Auditable;
// حقول مستبعدة من التدقيق
protected array $auditExclude = ['password'];
}
دوال مساعدة للأمان:
use Salehye\LaravelSecurity\Traits\SecurityHelpers;
class Controller extends Controller
{
use SecurityHelpers;
public function store(Request $request)
{
// توليد توكن آمن
$token = $this->generateSecureToken();
// التحقق من Bot
if ($this->isBot()) {
// تعامل مع البوتات
}
// التحقق من HTTPS
$this->requireSecure();
}
}
الحزمة تطلق أحداث للأحداث الأمنية:
// الأحداث
\Salehye\LaravelSecurity\Events\SuspiciousActivityDetected::class
\Salehye\LaravelSecurity\Events\UserBlocked::class
\Salehye\LaravelSecurity\Events\LoginAttemptFailed::class
\Salehye\LaravelSecurity\Events\RateLimitExceeded::class
عند تثبيت الحزمة، يتم تطبيق الحماية تلقائياً:
web middleware groupالحزمة مصممة للأداء العالي:
MIT License
للأسئلة والمشاكل، يرجى فتح issue على GitHub.
How can I help you explore Laravel packages today?