Security Assessment Report - OWASP Top 10 2021
تم إجراء فحص أمني استشاري شامل على موقع almadah.com (متجر إلكتروني لمواد البناء) بتاريخ 12 يونيو 2026. يهدف هذا الفحص إلى تقييم الوضع الأمني للموقع وتحديد الثغرات المحتملة وفقاً لمعايير OWASP Top 10 وأفضل الممارسات الأمنية الصناعية.
هذا الفحص هو فحص استشاري (Gray Box Assessment) يعتمد على تحليل الهيدرز والبنية التقنية والمعلومات المتاحة علنياً. لم يتم إجراء أي هجمات فعلية على الموقع أو محاولة استغلال أي ثغرات بشكل مباشر.
| # | المخاطر | الخطورة | التأثير |
|---|---|---|---|
| 1 | نقص الهيدرز الأمنية | عالية | Clickjacking و XSS |
| 2 | ثغرة XSS المخزنة (CVE-2023) | عالية | سرقة بيانات المستخدمين |
| 3 | ضعف حماية تسجيل الدخول | متوسطة | هجمات Brute Force |
| 4 | تسريب إصدار nginx | متوسطة | استهداف ثغرات معروفة |
| 5 | غياب security.txt | منخفضة | صعوبة الإبلاغ |
| 6 | TLS 1.0/1.1 مدعومين | متوسطة | Downgrade attacks |
| 7 | Cloudflare WAF mode ضعيف | متوسطة | Basic payloads بتمر |
| البند | التفاصيل |
|---|---|
| الموقع المستهدف | https://almadah.com |
| نوع الفحص | Gray Box Assessment |
| تاريخ الفحص | 12 يونيو 2026 |
| المعيار المرجعي | OWASP Top 10 - 2021 |
| النقاط المفحوصة | الهيدرز، SSL/TLS، البنية التقنية، النماذج، API |
| الأداة | الاستخدام |
|---|---|
| cURL | فحص الهيدرز وتحليل الاستجابات |
| OpenSSL | تحليل شهادة SSL/TLS |
| Browser DevTools | تحليل المحتوى والشبكة |
| Exploit-DB / NVD | البحث عن الثغرات المعروفة (CVE) |
| المكون | التقنية | الملاحظات |
|---|---|---|
| Frontend | Bootstrap RTL + jQuery | واجهة المستخدم |
| Backend | Laravel (PHP) | إطار العمل الرئيسي |
| CMS | Active eCommerce CMS | نظام إدارة المحتوى |
| Web Server | nginx | يظهر في صفحات الخطأ |
| CDN / WAF | Cloudflare | جدار حماية |
| SSL | Let's Encrypt ECDSA P-256 | شهادة أمان |
| Database | MySQL | افتراضي مع Laravel |
الموقع بيسرب إصدار nginx في صفحات الخطأ (404). المفروض تخفيه بـ server_tokens off;
| الهيدر | الحالة | التقييم |
|---|---|---|
| HSTS | موجود (31536000) | ممتاز |
| X-Frame-Options | مفقود | Clickjacking |
| X-Content-Type-Options | مفقود | MIME Sniffing |
| Content-Security-Policy | مفقود | بدون حماية XSS |
| X-XSS-Protection | مفقود | ضعيف |
| Referrer-Policy | مفقود | تسريب Referrer |
| Cookie HttpOnly | موجود | جيد |
| Cookie SameSite | مفقود | عرضة لـ CSRF |
| العنصر | التفاصيل | التقييم |
|---|---|---|
| المصدر | Let's Encrypt E8 | موثوق |
| خوارزمية المفتاح | ECDSA P-256 | قوي |
| إصدار TLS | TLS 1.3 | أحدث |
| Cipher Suite | TLS_AES_256_GCM_SHA384 | 256-bit |
| HSTS | max-age=31536000 | مفعل سنة كاملة |
الفحص اكتشف إن TLS 1.0 و TLS 1.1 لسه شغالين على السيرفر. الإصدارات دي ضعيفة ومعرضة لهجمات downgrade. المفروض يتعطلوا ويفضل TLS 1.2+ بس.
| الـ Port | الخدمة | الحالة |
|---|---|---|
| 80/tcp | HTTP | مفتوح (بيرجع 403) |
| 443/tcp | HTTPS | مفتوح (الرئيسي) |
| 8080/tcp | HTTP-alt | مفتوح (redirect لـ 443) |
| 8443/tcp | HTTPS-alt | غير مستجيب |
| Method | الاستجابة | التقييم |
|---|---|---|
| OPTIONS | 405 Method Not Allowed | محمي |
| PUT | 405 Method Not Allowed | محمي |
| DELETE | 405 Method Not Allowed | محمي |
| PATCH | 405 Method Not Allowed | محمي |
| TRACE | 405 Method Not Allowed | محمي |
تم اختبار Cloudflare WAF بمحاولات XSS و SQLi ظاهرة:
| الاختبار | الـ Payload | النتيجة |
|---|---|---|
| XSS Basic | <script>alert(1)</script> | مرّ (200 OK) - مفيش حظر! |
| SQLi Basic | 1'OR'1'='1 | مرّ (200 OK) - مفيش حظر! |
Cloudflare WAF على الأغلب شغال بـ "Low" أو "Medium" mode. البايلودز البسيطة (Basic XSS/SQLi) بتعدّي من غير ما تتكشف. المفروض يرفع الـ sensitivity لـ "High" أو يضيف Custom Rules.
الموقع بيفتقر لـ 6 هيدرز أمنية أساسية:
ثغرة Stored XSS معروفة في Active eCommerce CMS. المهاجم يرفع ملف SVG خبيث فيه JavaScript ضار.
| المعلومة | المصدر | المخاطر |
|---|---|---|
| إصدار nginx | صفحات الخطأ (404) | استهداف ثغرات معروفة |
| مسار الملفات | sitemap.xml | كشف بنية الخادم |
| إصدارات المكتبات | CSS/JS files | ثغرات معروفة |
الموقع مالوش ملف /.well-known/security.txt (معيار RFC 9116) اللي بيسمح للباحثين الأمنيين يبلغوا عن الثغرات بسهولة.
| الخاصية | الحالة | الملاحظات |
|---|---|---|
| HttpOnly | مفعل | يمنع وصول JavaScript |
| Secure | غير محدد | لازم يتضاف |
| SameSite | مفقود | يحمي من CSRF |
الفحص بالـ OpenSSL اكتشف إن السيرفر بيقبل TLS 1.0 و TLS 1.1. الإصدارات دي معرضة لهجمات downgrade (مثل POODLE, BEAST) ومفروض تتعطل.
ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
تم اختبار WAF بـ basic payloads:
<script>alert(1)</script> -> 200 OK (مفيش حظر)1'OR'1'='1 -> 200 OK (مفيش حظر)# Cloudflare Dashboard -> Security -> WAF # 1. ارفع Security Level لـ "High" # 2. شغل "Managed Rules" (OWASP Core Ruleset) # 3. ضيف Custom Rule لحظر XSS/SQLi patterns
| # | التصنيف | الحالة | التحليل |
|---|---|---|---|
| A01 | Broken Access Control | منخفض | Laravel يوفر حماية افتراضية كويسة |
| A02 | Cryptographic Failures | متوسط | TLS 1.0/1.1 لسه شغالين + SameSite مفقود |
| A03 | Injection | منخفض | Laravel ORM بيحمي من SQLi |
| A04 | Insecure Design | متوسط | غياب Rate Limiting و CAPTCHA |
| A05 | Security Misconfiguration | عالي | 6 هيدرز أمنية مفقودة + تسريب nginx |
| A06 | Vulnerable Components | عالي | ثغرة XSS معروفة CVE-2023-51221 |
| A07 | Auth Failures | متوسط | غياب Rate Limiting و Account Lockout |
| A08 | Data Integrity | منخفض | CSRF protection مفعل |
| A09 | Logging Failures | غير محدد | مش متاح التقييم من الخارج |
| A10 | SSRF | منخفض | لا توجد مؤشرات |
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://fonts.googleapis.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob:; font-src 'self' https://fonts.gstatic.com; frame-ancestors 'self';" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set('X-Frame-Options', 'SAMEORIGIN');
$response->headers->set('X-Content-Type-Options', 'nosniff');
$response->headers->set('Referrer-Policy', 'strict-origin-when-cross-origin');
return $response;
}
$disallowed = ['svg', 'svgz']; $badMimes = ['image/svg+xml'];
Route::post('/users/login', [LoginController::class, 'login'])
->middleware('throttle:5,1'); // 5 محاولات في الدقيقة
composer require anhskohbo/no-captcha
RateLimiter::for('login', function ($request) {
return Limit::perMinute(5)->by($request->ip());
});
server_tokens off;
APP_DEBUG=false APP_ENV=production
'secure' => true 'same_site' => 'lax' 'http_only' => true
Contact: mailto:security@almadah.com Expires: 2027-01-01T00:00:00.000Z Preferred-Languages: ar, en
تم تحديد 8 ثغرات أمنية تتراوح بين عالية ومنخفضة. الفحص العميق اكتشف كمان إن TLS 1.0/1.1 لسه شغالين وإن Cloudflare WAF على mode ضعيف. الموقع ليه أساس أمني كويس بس فيه نقاط لازم تتصلح فوراً.
server_tokens off;| البند | التقييم | الأولوية |
|---|---|---|
| SSL/TLS (Cipher/Key) | ممتاز (A+) | - |
| SSL/TLS (Protocols) | ضعيف - TLS 1.0/1.1 شغالين | فوري |
| الهيدرز الأمنية | ضعيف (F) - 6 هيدرز مفقودة | فوري |
| حماية XSS | ضعيف - ثغرة SVG + WAF bypass | فوري |
| Cloudflare WAF | متوسط - Basic payloads بتمر | فوري |
| مصادقة المستخدمين | متوسط - مفيش Rate Limiting | متوسطة |
| إدارة الجلسات | متوسط - SameSite مفقود | متوسطة |
| CSRF Protection | مفعل (Laravel) | - |
| HTTP Methods | محمي (كلها 405) | - |
| Debug Endpoints | مش موجودة (كلها 404) | - |
الموقع أساسه أمني كويس (Laravel + TLS 1.3 + CSRF Protection + HTTP Methods محمية) بس فيه 8 ثغرات لازم تتصلح. أهم حاجة: الهيدرز الأمنية (10 دقايق شغل)، تعطيل TLS 1.0/1.1، ورفع WAF sensitivity. ثغرة XSS في CMS لازم تحديث فوري.