مقدمة: ليه الأمان مهم؟
كل يوم آلاف المواقع بتتعرض للاختراق. معظم الهجمات بتحصل بسبب أخطاء بسيطة ممكن تتجنبها. OWASP بتنشر كل سنوات قائمة بأخطر 10 ثغرات أمنية.
1. SQL Injection
المهاجم بيحقن SQL Code في الـ Input لتلاعب في قاعدة البيانات.
// غلط وخطير
DB::select("SELECT * FROM users WHERE email = '" . $email . "'");
// صح - Eloquent بيعمل Parameterized Queries تلقائياً
User::where('email', $email)->first();
2. XSS – Cross-Site Scripting
// غلط - بيسمح بتنفيذ JavaScript
{!! $userInput !!}
// صح - Blade بيعمل Escape تلقائياً
{{ $userInput }}
3. CSRF – Cross-Site Request Forgery
Laravel بيحمي ضد CSRF تلقائياً بالـ @csrf في كل Form. ما تنساش تضيفه.
4. Broken Authentication
- شفّر كلمات المرور بـ bcrypt (Laravel بيعمل ده تلقائياً)
- اعمل Rate Limiting على صفحة Login
- استخدم HTTPS دايماً
5. Sensitive Data Exposure
- ما تحطش API Keys أو Passwords في الكود
- استخدم
.envوضيفه لـ.gitignore - في Production:
APP_DEBUG=false
6. Mass Assignment
// غلط
protected $guarded = [];
// صح - حدد الـ fields المسموح بها بوضوح
protected $fillable = ['name', 'email', 'password'];
نصائح عامة
- حدّث Laravel وكل الـ Packages دايماً
- فعّل HTTPS على السيرفر
- اعمل Regular Backups لقاعدة البيانات