<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 🎖️المحارب الرقمي🎖️</title>
    <description>The latest articles on DEV Community by 🎖️المحارب الرقمي🎖️ (@asrarmared).</description>
    <link>https://dev.to/asrarmared</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3625853%2Fde0b1a4c-a599-426f-9239-5f5850e086b5.png</url>
      <title>DEV Community: 🎖️المحارب الرقمي🎖️</title>
      <link>https://dev.to/asrarmared</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/asrarmared"/>
    <language>en</language>
    <item>
      <title># 🛡️ Security Advisory: Unquoted Service Path in PDF Complete Corporate Edition

## CVE-2021-47896

---

## 📋 Executive Summary

**Severity:** HIGH 
**CVSS 3.1 Score:** 7.8 
**CVSS 4.0 Score:** 8.5 
**Weakness Type:** CWE-428 (Unquoted Search Path or</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Sun, 07 Jun 2026 17:21:12 +0000</pubDate>
      <link>https://dev.to/asrarmared/-security-advisory-unquoted-service-path-in-pdf-complete-corporate-edition-cve-2021-47896-2172</link>
      <guid>https://dev.to/asrarmared/-security-advisory-unquoted-service-path-in-pdf-complete-corporate-edition-cve-2021-47896-2172</guid>
      <description></description>
    </item>
    <item>
      <title>كيف رصد مشروع درع زايد التجسس الاصناعي بوتات الصامتة وتسرق بياناتك
بوتات لا تنام: الكابوس التقني الذي يراقب كل حركة تقوم بها."</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Tue, 02 Jun 2026 16:38:53 +0000</pubDate>
      <link>https://dev.to/asrarmared/kyf-rsd-mshrw-dr-zyd-ltjss-lsny-bwtt-lsmt-wtsrq-byntk-bwtt-l-tnm-lkbws-ltqny-4hff</link>
      <guid>https://dev.to/asrarmared/kyf-rsd-mshrw-dr-zyd-ltjss-lsny-bwtt-lsmt-wtsrq-byntk-bwtt-l-tnm-lkbws-ltqny-4hff</guid>
      <description></description>
    </item>
    <item>
      <title>🛡️ Security Advisory: Unquoted Service Path in PDF Complete Corporate Edition

 CVE-2021-47896
---
 📋 Executive Summary

Severity: HIGH 
CVSS 3.1 Score: 7.8 
CVSS 4.0 Score: 8.5 
Weakness Type: CWE-428 (Unquoted Search Path or</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Fri, 22 May 2026 15:50:37 +0000</pubDate>
      <link>https://dev.to/asrarmared/security-advisory-unquoted-service-path-in-pdf-complete-corporate-edition-cve-2021-47896-bbg</link>
      <guid>https://dev.to/asrarmared/security-advisory-unquoted-service-path-in-pdf-complete-corporate-edition-cve-2021-47896-bbg</guid>
      <description></description>
    </item>
    <item>
      <title>المصل الدفاعي لهجوم AI</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Mon, 04 May 2026 21:22:46 +0000</pubDate>
      <link>https://dev.to/asrarmared/lmsl-ldfy-lhjwm-ai-73l</link>
      <guid>https://dev.to/asrarmared/lmsl-ldfy-lhjwm-ai-73l</guid>
      <description>&lt;h2&gt;
  
  
  المصل الدفاعي لهجوم AI
&lt;/h2&gt;

&lt;p&gt;إليك هذا الفيديو القصير الذي يتناول موضوع الحماية من هجمات الذكاء الاصطناعي:&lt;/p&gt;


&lt;div&gt;
    &lt;iframe src="https://www.youtube.com/embed/lsUY1D1vZxE"&gt;
    &lt;/iframe&gt;
  &lt;/div&gt;


&lt;h3&gt;
  
  
  نبذة سريعة
&lt;/h3&gt;

&lt;p&gt;يفضل دائماً إضافة سطرين أو ثلاثة بالأسفل تشرح فيهم الفائدة الرئيسية من الفيديو، لأن مجتمع DEV يفضل المحتوى الذي يحتوي على سياق مكتوب بجانب الفيديو.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>arabic</category>
    </item>
    <item>
      <title>قلعة المحارب 

https://www.youtube.com/watch?v=1osBfwWBHWM</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Mon, 04 May 2026 21:12:52 +0000</pubDate>
      <link>https://dev.to/asrarmared/ql-lmhrb-httpswwwyoutubecomwatchv1osbfwwbhwm-4gaj</link>
      <guid>https://dev.to/asrarmared/ql-lmhrb-httpswwwyoutubecomwatchv1osbfwwbhwm-4gaj</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.youtube.com/watch?v=1osBfwWBHWM" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;youtube.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Professional Security Audit Report - Zayed Shield Project

https://coderlegion.com/16694/professional-security-audit-report-zayed-shield-project</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Mon, 04 May 2026 21:07:06 +0000</pubDate>
      <link>https://dev.to/asrarmared/professional-security-audit-report-zayed-shield-project-49bk</link>
      <guid>https://dev.to/asrarmared/professional-security-audit-report-zayed-shield-project-49bk</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://coderlegion.com/16694/professional-security-audit-report-zayed-shield-project" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoderlegion.com%2Fbgcover-meta-img%3Fblobid%3D6751445287249090899" height="1003" class="m-0" width="982"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://coderlegion.com/16694/professional-security-audit-report-zayed-shield-project" rel="noopener noreferrer" class="c-link"&gt;
            Professional Security Audit Report - Zayed Shield Project - Coder Legion
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            # ️ Security Audit Report ## Zayed Shield Project - npm Dependencies Analysis **Report Date:** December 10, 2025 **Auditor:** Zayed Security Research Team **Project:** Zayed-Shield **Environment:** Termux on Android (ARM64) **Node Version:**...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoderlegion.com%2Ffavicon-32x32.png" width="32" height="32"&gt;
          coderlegion.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Building a Fortress: My Automated Security Framework for npm Packages</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Fri, 01 May 2026 04:48:58 +0000</pubDate>
      <link>https://dev.to/asrarmared/building-a-fortress-my-automated-security-framework-for-npm-packages-2g5p</link>
      <guid>https://dev.to/asrarmared/building-a-fortress-my-automated-security-framework-for-npm-packages-2g5p</guid>
      <description>&lt;p&gt;Liquid syntax error: 'details' tag was never closed&lt;/p&gt;
</description>
      <category>security</category>
      <category>javascript</category>
      <category>npm</category>
      <category>devops</category>
    </item>
    <item>
      <title>🛡️ حل ثغرة CVE-2025-55182 في React و Next.js</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Thu, 30 Apr 2026 20:48:29 +0000</pubDate>
      <link>https://dev.to/asrarmared/hl-thgr-cve-2025-55182-fy-react-w-nextjs-3nig</link>
      <guid>https://dev.to/asrarmared/hl-thgr-cve-2025-55182-fy-react-w-nextjs-3nig</guid>
      <description>&lt;h1&gt;
  
  
  !/bin/bash
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ============================================================================
&lt;/h1&gt;

&lt;h1&gt;
  
  
  🛡️ CVE-2025-55182 Security Patch Script
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ============================================================================
&lt;/h1&gt;

&lt;h1&gt;
  
  
  مؤسسة الرئاسة - مشروع درع زايد
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Presidential Institution - Zayed Shield Project
&lt;/h1&gt;

&lt;h1&gt;
  
  
  الهدف: إصلاح ثغرة الأمنية في React وحزم Next.js المتأثرة
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Purpose: Patch security vulnerability in React and affected Next.js packages
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ============================================================================
&lt;/h1&gt;

&lt;p&gt;set -e&lt;/p&gt;

&lt;h1&gt;
  
  
  ألوان للتنسيق
&lt;/h1&gt;

&lt;p&gt;RED='\033[0;31m'&lt;br&gt;
GREEN='\033[0;32m'&lt;br&gt;
YELLOW='\033[1;33m'&lt;br&gt;
BLUE='\033[0;34m'&lt;br&gt;
NC='\033[0m' # No Color&lt;/p&gt;

&lt;h1&gt;
  
  
  رسالة البداية
&lt;/h1&gt;

&lt;p&gt;echo -e "${BLUE}"&lt;br&gt;
echo "╔════════════════════════════════════════════════════════════╗"&lt;br&gt;
echo "║       🛡️  CVE-2025-55182 Security Patch Script  🛡️        ║"&lt;br&gt;
echo "║              مؤسسة الرئاسة - مشروع درع زايد               ║"&lt;br&gt;
echo "╚════════════════════════════════════════════════════════════╝"&lt;br&gt;
echo -e "${NC}"&lt;/p&gt;

&lt;h1&gt;
  
  
  التحقق من صلاحيات المستخدم
&lt;/h1&gt;

&lt;p&gt;check_permissions() {&lt;br&gt;
    echo -e "${YELLOW}[*] التحقق من الصلاحيات...${NC}"&lt;br&gt;
    if [ ! -f "package.json" ]; then&lt;br&gt;
        echo -e "${RED}[!] خطأ: لم يتم العثور على package.json${NC}"&lt;br&gt;
        echo -e "${RED}[!] تأكد من تشغيل السكريبت في مجلد المشروع${NC}"&lt;br&gt;
        exit 1&lt;br&gt;
    fi&lt;br&gt;
    echo -e "${GREEN}[✓] تم العثور على package.json${NC}"&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  النسخ الاحتياطي
&lt;/h1&gt;

&lt;p&gt;backup_packages() {&lt;br&gt;
    echo -e "${YELLOW}[*] إنشاء نسخة احتياطية...${NC}"&lt;br&gt;
    cp package.json package.json.backup.$(date +%Y%m%d_%H%M%S)&lt;br&gt;
    if [ -f "package-lock.json" ]; then&lt;br&gt;
        cp package-lock.json package-lock.json.backup.$(date +%Y%m%d_%H%M%S)&lt;br&gt;
    fi&lt;br&gt;
    if [ -f "yarn.lock" ]; then&lt;br&gt;
        cp yarn.lock yarn.lock.backup.$(date +%Y%m%d_%H%M%S)&lt;br&gt;
    fi&lt;br&gt;
    echo -e "${GREEN}[✓] تم إنشاء النسخة الاحتياطية بنجاح${NC}"&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  فحص الإصدارات المتأثرة
&lt;/h1&gt;

&lt;p&gt;check_vulnerable_versions() {&lt;br&gt;
    echo -e "${YELLOW}[*] فحص الإصدارات المتأثرة بالثغرة...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VULNERABLE=false

# فحص React
if grep -q '"react".*"19\.[01]\.' package.json || \
   grep -q '"react".*"\^19\.[01]\.' package.json || \
   grep -q '"react".*"~19\.[01]\.' package.json; then
    echo -e "${RED}[!] تم اكتشاف إصدار React متأثر بالثغرة${NC}"
    VULNERABLE=true
fi

# فحص Next.js
if grep -q '"next".*"1[45]\.' package.json; then
    echo -e "${RED}[!] تم اكتشاف إصدار Next.js متأثر بالثغرة${NC}"
    VULNERABLE=true
fi

if [ "$VULNERABLE" = false ]; then
    echo -e "${GREEN}[✓] لم يتم اكتشاف إصدارات متأثرة${NC}"
    exit 0
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تحديث React إلى الإصدار الآمن
&lt;/h1&gt;

&lt;p&gt;patch_react() {&lt;br&gt;
    echo -e "${YELLOW}[*] تحديث React إلى الإصدار الآمن...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# الإصدارات الآمنة المقترحة
# React 19.2.1, 19.1.2, 19.0.1 آمنة

if command -v npm &amp;amp;&amp;gt; /dev/null; then
    echo -e "${BLUE}[*] استخدام npm للتحديث...${NC}"
    npm install react@19.2.1 react-dom@19.2.1 --save
elif command -v yarn &amp;amp;&amp;gt; /dev/null; then
    echo -e "${BLUE}[*] استخدام yarn للتحديث...${NC}"
    yarn add react@19.2.1 react-dom@19.2.1
else
    echo -e "${RED}[!] خطأ: لم يتم العثور على npm أو yarn${NC}"
    exit 1
fi

echo -e "${GREEN}[✓] تم تحديث React بنجاح${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تحديث Next.js إلى الإصدار الآمن
&lt;/h1&gt;

&lt;p&gt;patch_nextjs() {&lt;br&gt;
    echo -e "${YELLOW}[*] التحقق من Next.js...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if grep -q '"next"' package.json; then
    echo -e "${BLUE}[*] تحديث Next.js إلى الإصدار الآمن...${NC}"

    # الإصدارات الآمنة: 15.x أو 16.x
    if command -v npm &amp;amp;&amp;gt; /dev/null; then
        npm install next@latest --save
    elif command -v yarn &amp;amp;&amp;gt; /dev/null; then
        yarn add next@latest
    fi

    echo -e "${GREEN}[✓] تم تحديث Next.js بنجاح${NC}"
else
    echo -e "${BLUE}[*] Next.js غير مثبت في المشروع${NC}"
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تحديث الحزم المتأثرة الأخرى
&lt;/h1&gt;

&lt;p&gt;patch_affected_packages() {&lt;br&gt;
    echo -e "${YELLOW}[*] تحديث الحزم المتأثرة الأخرى...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# قائمة الحزم المتأثرة من الثغرة
AFFECTED_PACKAGES=(
    "react-server-dom-parcel"
    "react-server-dom-turbopack"
    "react-server-dom-webpack"
)

for pkg in "${AFFECTED_PACKAGES[@]}"; do
    if grep -q "\"$pkg\"" package.json; then
        echo -e "${BLUE}[*] تحديث $pkg...${NC}"
        if command -v npm &amp;amp;&amp;gt; /dev/null; then
            npm install "$pkg@latest" --save
        elif command -v yarn &amp;amp;&amp;gt; /dev/null; then
            yarn add "$pkg@latest"
        fi
    fi
done

echo -e "${GREEN}[✓] تم تحديث جميع الحزم المتأثرة${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تنظيف الذاكرة المؤقتة
&lt;/h1&gt;

&lt;p&gt;clean_cache() {&lt;br&gt;
    echo -e "${YELLOW}[*] تنظيف الذاكرة المؤقتة...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if command -v npm &amp;amp;&amp;gt; /dev/null; then
    npm cache clean --force
fi

if [ -d "node_modules" ]; then
    echo -e "${BLUE}[*] حذف node_modules...${NC}"
    rm -rf node_modules
fi

if [ -d ".next" ]; then
    echo -e "${BLUE}[*] حذف .next...${NC}"
    rm -rf .next
fi

echo -e "${GREEN}[✓] تم التنظيف بنجاح${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  إعادة التثبيت
&lt;/h1&gt;

&lt;p&gt;reinstall_dependencies() {&lt;br&gt;
    echo -e "${YELLOW}[*] إعادة تثبيت التبعيات...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if command -v npm &amp;amp;&amp;gt; /dev/null; then
    npm install
elif command -v yarn &amp;amp;&amp;gt; /dev/null; then
    yarn install
fi

echo -e "${GREEN}[✓] تم إعادة التثبيت بنجاح${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  فحص نهائي
&lt;/h1&gt;

&lt;p&gt;final_verification() {&lt;br&gt;
    echo -e "${YELLOW}[*] إجراء الفحص النهائي...${NC}"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if command -v npm &amp;amp;&amp;gt; /dev/null; then
    echo -e "${BLUE}[*] فحص الثغرات الأمنية...${NC}"
    npm audit --production || true
fi

echo -e "${GREEN}[✓] اكتمل الفحص النهائي${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تقرير نهائي
&lt;/h1&gt;

&lt;p&gt;generate_report() {&lt;br&gt;
    echo -e "${BLUE}"&lt;br&gt;
    echo "╔════════════════════════════════════════════════════════════╗"&lt;br&gt;
    echo "║                    📊 تقرير الإصلاح                       ║"&lt;br&gt;
    echo "╠════════════════════════════════════════════════════════════╣"&lt;br&gt;
    echo "║  ✅ تم إصلاح الثغرة CVE-2025-55182 بنجاح                 ║"&lt;br&gt;
    echo "║  ✅ تم تحديث جميع الحزم المتأثرة                          ║"&lt;br&gt;
    echo "║  ✅ تم إنشاء نسخة احتياطية من الملفات                     ║"&lt;br&gt;
    echo "║  ✅ تم تنظيف الذاكرة المؤقتة                              ║"&lt;br&gt;
    echo "╠════════════════════════════════════════════════════════════╣"&lt;br&gt;
    echo "║  📝 الإجراءات الموصى بها:                                ║"&lt;br&gt;
    echo "║     1. اختبار المشروع بشكل كامل                          ║"&lt;br&gt;
    echo "║     2. مراجعة سجلات التغييرات                             ║"&lt;br&gt;
    echo "║     3. تحديث بيئة الإنتاج                                 ║"&lt;br&gt;
    echo "╠════════════════════════════════════════════════════════════╣"&lt;br&gt;
    echo "║         🛡️ مؤسسة الرئاسة - مشروع درع زايد 🛡️            ║"&lt;br&gt;
    echo "╚════════════════════════════════════════════════════════════╝"&lt;br&gt;
    echo -e "${NC}"&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  ============================================================================
&lt;/h1&gt;

&lt;h1&gt;
  
  
  تنفيذ السكريبت الرئيسي
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ============================================================================
&lt;/h1&gt;

&lt;p&gt;main() {&lt;br&gt;
    check_permissions&lt;br&gt;
    backup_packages&lt;br&gt;
    check_vulnerable_versions&lt;br&gt;
    patch_react&lt;br&gt;
    patch_nextjs&lt;br&gt;
    patch_affected_packages&lt;br&gt;
    clean_cache&lt;br&gt;
    reinstall_dependencies&lt;br&gt;
    final_verification&lt;br&gt;
    generate_report&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo -e "${GREEN}════════════════════════════════════════════════════════════${NC}"
echo -e "${GREEN}[✓] تم إصلاح الثغرة الأمنية بنجاح!${NC}"
echo -e "${GREEN}════════════════════════════════════════════════════════════${NC}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  تشغيل السكريبت
&lt;/h1&gt;

&lt;p&gt;main&lt;/p&gt;

&lt;h1&gt;
  
  
  🛡️ تقرير الحزم المتأثرة - CVE-2025-55182
&lt;/h1&gt;

&lt;h2&gt;
  
  
  📦 الحزم المتأثرة والإصدارات الآمنة
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ &lt;strong&gt;React&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt; 19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.1.0, &amp;lt; 19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.2.0, &amp;lt; 19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2️⃣ &lt;strong&gt;react-dom&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt; 19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.1.0, &amp;lt; 19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.2.0, &amp;lt; 19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3️⃣ &lt;strong&gt;react-server-dom-webpack&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt; 19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.1.0, &amp;lt; 19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.2.0, &amp;lt; 19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4️⃣ &lt;strong&gt;react-server-dom-turbopack&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt; 19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.1.0, &amp;lt; 19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.2.0, &amp;lt; 19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5️⃣ &lt;strong&gt;react-server-dom-parcel&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt; 19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.1.0, &amp;lt; 19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 19.2.0, &amp;lt; 19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6️⃣ &lt;strong&gt;Next.js&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 14.3.0, &amp;lt; 15.0.7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 15.1.0, &amp;lt; 15.1.9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 15.2.0, &amp;lt; 15.2.6&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 15.3.0, &amp;lt; 15.3.6&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 15.4.0, &amp;lt; 15.4.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 15.5.0, &amp;lt; 15.5.7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;= 16.0.0, &amp;lt; 16.0.7&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Patched:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;15.0.7+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.1.9+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.2.6+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.3.6+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.4.8+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.5.7+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16.0.7+&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡ الإصلاح السريع
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;react@19.2.1 react-dom@19.2.1 next@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;🛡️ مؤسسة الرئاسة - مشروع درع زايد&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🛡️ حل ثغرة CVE-2025-55182 في React و Next.js
&lt;/h1&gt;




&lt;h2&gt;
  
  
  📋 دليل الاستخدام | Usage Guide
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚀 طريقة التشغيل:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. حفظ السكريبت&lt;/span&gt;
&lt;span class="nb"&gt;chmod&lt;/span&gt; +x security-patch.sh

&lt;span class="c"&gt;# 2. تشغيل السكريبت في مجلد المشروع&lt;/span&gt;
./security-patch.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛡️ ما يفعله السكريبت:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;الفحص والتحليل&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;يفحص &lt;code&gt;package.json&lt;/code&gt; للكشف عن الإصدارات المتأثرة&lt;/li&gt;
&lt;li&gt;يحدد React 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.2.0&lt;/li&gt;
&lt;li&gt;يفحص Next.js 14.x و 15.x المتأثرة&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;النسخ الاحتياطي&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ينشئ نسخة احتياطية من &lt;code&gt;package.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;ينسخ &lt;code&gt;package-lock.json&lt;/code&gt; و &lt;code&gt;yarn.lock&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;يحفظ النسخ بتاريخ ووقت الإنشاء&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;الإصلاح الشامل&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;يحدث React إلى &lt;strong&gt;19.2.1&lt;/strong&gt; (الإصدار الآمن)&lt;/li&gt;
&lt;li&gt;يحدث Next.js إلى أحدث إصدار آمن&lt;/li&gt;
&lt;li&gt;يصلح جميع الحزم المتأثرة:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;react-server-dom-parcel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;react-server-dom-turbopack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;react-server-dom-webpack&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;التنظيف والتحقق&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ينظف &lt;code&gt;node_modules&lt;/code&gt; و &lt;code&gt;.next&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;يحذف الذاكرة المؤقتة&lt;/li&gt;
&lt;li&gt;يعيد تثبيت التبعيات&lt;/li&gt;
&lt;li&gt;يجري فحص نهائي للثغرات&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📊 تقرير نهائي تلقائي
&lt;/h2&gt;

&lt;p&gt;السكريبت يولد تقرير شامل يتضمن:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ حالة الإصلاح&lt;/li&gt;
&lt;li&gt;📝 الإجراءات المنفذة&lt;/li&gt;
&lt;li&gt;🔍 نتائج الفحص النهائي&lt;/li&gt;
&lt;li&gt;💡 التوصيات&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 المميزات الاحترافية:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;🔒 آمن تماماً&lt;/strong&gt; - ينشئ نسخ احتياطية قبل أي تعديل&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎨 واجهة احترافية&lt;/strong&gt; - ألوان وتنسيق واضح&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⚡ سريع وفعال&lt;/strong&gt; - يصلح كل شيء تلقائياً&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📊 تقارير مفصلة&lt;/strong&gt; - يوثق كل خطوة&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ متوافق&lt;/strong&gt; - يعمل مع npm و yarn&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;💪 مع هذا السكريبت، مؤسسة الرئاسة تثبت احترافيتها في حماية الأنظمة الرقمية!&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🛡️ دليل التوعية الأمنية - CVE-2025-55182 ⚠️ هذه ليست مجرد ثغرة... هذا درس!</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Thu, 30 Apr 2026 20:36:44 +0000</pubDate>
      <link>https://dev.to/asrarmared/dlyl-ltwy-lmny-cve-2025-55182-hdhh-lyst-mjrd-thgr-hdh-drs-d6g</link>
      <guid>https://dev.to/asrarmared/dlyl-ltwy-lmny-cve-2025-55182-hdhh-lyst-mjrd-thgr-hdh-drs-d6g</guid>
      <description>&lt;h1&gt;
  
  
  🛡️ دليل التوعية الأمنية - CVE-2025-55182
&lt;/h1&gt;

&lt;h2&gt;
  
  
  ⚠️ هذه ليست مجرد ثغرة... هذا درس!
&lt;/h2&gt;




&lt;h2&gt;
  
  
  🔴 ما هي المشكلة؟
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CVE-2025-55182&lt;/strong&gt; ثغرة أمنية خطيرة في React 19.x تسمح بـ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💀 تنفيذ أكواد خبيثة على السيرفر&lt;/li&gt;
&lt;li&gt;💀 اختراق App Router في Next.js&lt;/li&gt;
&lt;li&gt;💀 الوصول لبيانات المستخدمين&lt;/li&gt;
&lt;li&gt;💀 السيطرة على التطبيق بالكامل&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;النتيجة:&lt;/strong&gt; إذا لم تُصلح، مشروعك &lt;strong&gt;مخترق&lt;/strong&gt; بدون ما تدري!&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 لماذا هذا خطير جداً؟
&lt;/h2&gt;

&lt;h3&gt;
  
  
  المشكلة الحقيقية:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;❌ "أنا هحدث بكرة"
❌ "التطبيق شغال عادي"
❌ "مفيش حد هيخترقني"
❌ "الثغرة مش مهمة"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  الحقيقة المرة:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✅ الهاكرز بيبحثوا عن الثغرة دي دلوقتي
✅ كل يوم تأخير = فرصة للاختراق
✅ بياناتك وبيانات عملائك في خطر
✅ سمعتك كمطور على المحك
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💊 الحل: لن تتكرر هذه المشكلة مرة أخرى!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ &lt;strong&gt;الإصلاح الفوري (الآن!)&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# 🛡️ نهاية الثغرة - بدون رجعة&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🚀 Starting Security Patch..."&lt;/span&gt;

&lt;span class="c"&gt;# نسخة احتياطية&lt;/span&gt;
&lt;span class="nb"&gt;cp &lt;/span&gt;package.json package.json.backup

&lt;span class="c"&gt;# الإصلاح النهائي&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;react@19.2.1 react-dom@19.2.1 next@latest

&lt;span class="c"&gt;# تنظيف شامل&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; node_modules .next
npm cache clean &lt;span class="nt"&gt;--force&lt;/span&gt;
npm &lt;span class="nb"&gt;install

echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ Security Patch Complete!"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🛡️ Your app is now SECURE!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2️⃣ &lt;strong&gt;الوقاية: لن يحدث مرة أخرى&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  أ) أتمتة الفحص الأمني
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;أضف في &lt;code&gt;package.json&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"security-check"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npm audit --production"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"security-fix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npm audit fix --force"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"pre-commit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npm run security-check"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ب) GitHub Actions للحماية التلقائية
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;ملف &lt;code&gt;.github/workflows/security.yml&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Security Check&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;main&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;main&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;  &lt;span class="c1"&gt;# يومياً&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;security&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Security Audit&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;npm audit --audit-level=high&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Dependency Check&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;npm outdated&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Alert on Vulnerabilities&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;failure()&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;echo "⚠️ SECURITY ALERT: Vulnerabilities Found!"&lt;/span&gt;
          &lt;span class="s"&gt;exit 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ج) Dependabot للتحديثات التلقائية
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;ملف &lt;code&gt;.github/dependabot.yml&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="na"&gt;updates&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;package-ecosystem&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;npm"&lt;/span&gt;
    &lt;span class="na"&gt;directory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/"&lt;/span&gt;
    &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;interval&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;daily"&lt;/span&gt;
    &lt;span class="na"&gt;open-pull-requests-limit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;
    &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;security"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dependencies"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3️⃣ &lt;strong&gt;المراقبة المستمرة&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  سكريبت المراقبة اليومية:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# 🔍 Security Monitor Script&lt;/span&gt;
&lt;span class="c"&gt;# يشتغل يومياً ويبعتلك تنبيه&lt;/span&gt;

check_vulnerabilities&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 Checking for vulnerabilities..."&lt;/span&gt;

    &lt;span class="nv"&gt;RESULT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;npm audit &lt;span class="nt"&gt;--json&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;CRITICAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$RESULT&lt;/span&gt; | jq &lt;span class="s1"&gt;'.metadata.vulnerabilities.critical'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;HIGH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$RESULT&lt;/span&gt; | jq &lt;span class="s1"&gt;'.metadata.vulnerabilities.high'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CRITICAL&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-gt&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HIGH&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-gt&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🚨 ALERT: &lt;/span&gt;&lt;span class="nv"&gt;$CRITICAL&lt;/span&gt;&lt;span class="s2"&gt; Critical, &lt;/span&gt;&lt;span class="nv"&gt;$HIGH&lt;/span&gt;&lt;span class="s2"&gt; High vulnerabilities found!"&lt;/span&gt;

        &lt;span class="c"&gt;# إرسال تنبيه (مثال: Slack, Discord, Email)&lt;/span&gt;
        curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST YOUR_WEBHOOK_URL &lt;span class="se"&gt;\&lt;/span&gt;
          &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
          &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;🚨 Security Alert: &lt;/span&gt;&lt;span class="nv"&gt;$CRITICAL&lt;/span&gt;&lt;span class="s2"&gt; Critical vulnerabilities found!&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}"&lt;/span&gt;

        &lt;span class="k"&gt;return &lt;/span&gt;1
    &lt;span class="k"&gt;else
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ No critical vulnerabilities found"&lt;/span&gt;
        &lt;span class="k"&gt;return &lt;/span&gt;0
    &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

check_vulnerabilities
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌍 المجتمع يتحرك: كن جزءاً من الحل
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ما يفعله المجتمع:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;React Team&lt;/strong&gt; 🔧
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;إصدار patches فورية&lt;/li&gt;
&lt;li&gt;تحديث التوثيق&lt;/li&gt;
&lt;li&gt;نشر التحذيرات&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Next.js Team&lt;/strong&gt; 🚀
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;تحديثات أمنية عاجلة&lt;/li&gt;
&lt;li&gt;تحسين App Router&lt;/li&gt;
&lt;li&gt;إضافة حماية إضافية&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Security Researchers&lt;/strong&gt; 🕵️
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;اكتشاف الثغرات&lt;/li&gt;
&lt;li&gt;نشر التقارير&lt;/li&gt;
&lt;li&gt;مساعدة المطورين&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. &lt;strong&gt;المطورون حول العالم&lt;/strong&gt; 💪
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;تحديث فوري&lt;/li&gt;
&lt;li&gt;مشاركة الحلول&lt;/li&gt;
&lt;li&gt;نشر التوعية&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ماذا يجب أن تفعل أنت؟
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ✅ &lt;strong&gt;القائمة الذهبية:&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;☑️ حدّث مشاريعك الآن (لا تنتظر!)
☑️ فعّل GitHub Dependabot
☑️ أضف Security Workflow
☑️ راقب npm audit يومياً
☑️ شارك هذا الدليل مع فريقك
☑️ علّم المطورين الجدد
☑️ ساهم في نشر الوعي
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📊 الإحصائيات المخيفة
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔴 90% من الاختراقات سببها ثغرات معروفة لم تُصلح
🔴 متوسط وقت اكتشاف الاختراق: 207 يوم
🔴 تكلفة الاختراق الواحد: $4.45 مليون دولار
🔴 83% من الشركات تعرضت لاختراق في 2024
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💰 تكلفة التجاهل:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;السيناريو&lt;/th&gt;
&lt;th&gt;التكلفة&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;الإصلاح الآن&lt;/td&gt;
&lt;td&gt;15 دقيقة ⏱️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;الإصلاح بعد أسبوع&lt;/td&gt;
&lt;td&gt;ساعات من إعادة البناء 🔨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;الإصلاح بعد الاختراق&lt;/td&gt;
&lt;td&gt;خسارة العملاء + السمعة + المال 💸💔&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🎯 الخطة الذهبية: لن يحدث مجدداً
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Week 1: الإصلاح
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ تحديث جميع المشاريع&lt;/li&gt;
&lt;li&gt;✅ فحص شامل للثغرات&lt;/li&gt;
&lt;li&gt;✅ توثيق التغييرات&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 2: الأتمتة
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ إضافة GitHub Actions&lt;/li&gt;
&lt;li&gt;✅ تفعيل Dependabot&lt;/li&gt;
&lt;li&gt;✅ إعداد التنبيهات&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 3: المراقبة
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ سكريبتات المراقبة اليومية&lt;/li&gt;
&lt;li&gt;✅ لوحة تحكم للأمان&lt;/li&gt;
&lt;li&gt;✅ تقارير أسبوعية&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 4: التعليم
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ تدريب الفريق&lt;/li&gt;
&lt;li&gt;✅ توثيق الإجراءات&lt;/li&gt;
&lt;li&gt;✅ خطة الاستجابة للطوارئ&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 رسالة أخيرة
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│                                             │
│  الأمن السيبراني ليس خياراً...             │
│         هو مسؤولية!                        │
│                                             │
│  كل يوم تأخير = فرصة للهاكرز               │
│  كل ثغرة مُهملة = باب مفتوح للخطر          │
│                                             │
│  ✅ حدّث الآن                               │
│  ✅ راقب دائماً                             │
│  ✅ كن مستعداً                              │
│                                             │
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📞 الموارد والدعم
&lt;/h2&gt;

&lt;h3&gt;
  
  
  للمساعدة الفورية:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;React Discord&lt;/strong&gt;: &lt;a href="https://react.dev/community" rel="noopener noreferrer"&gt;https://react.dev/community&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Next.js Discord&lt;/strong&gt;: &lt;a href="https://nextjs.org/discord" rel="noopener noreferrer"&gt;https://nextjs.org/discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Stack Overflow&lt;/strong&gt;: Tag [reactjs] [security]&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;GitHub Discussions&lt;/strong&gt;: في مستودع المشروع&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  للتعلم المستمر:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📚 OWASP Security Guidelines&lt;/li&gt;
&lt;li&gt;📚 npm Security Best Practices&lt;/li&gt;
&lt;li&gt;📚 React Security Documentation&lt;/li&gt;
&lt;li&gt;📚 Next.js Security Headers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛡️ التعهد الأمني
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;أنا [اسمك]، أتعهد بأن:

✅ أحدّث مشاريعي فوراً عند اكتشاف ثغرات
✅ أراقب التبعيات بشكل مستمر
✅ أشارك المعرفة الأمنية مع المجتمع
✅ لا أتجاهل التحذيرات الأمنية أبداً
✅ أجعل الأمان أولوية في كل كود أكتبه

التوقيع: ________________
التاريخ: ________________
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🎬 الخلاصة
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ هذه الثغرة انتهت... إذا تصرفت الآن!
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# آخر فرصة - نفذ هذا الأمر الآن:&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;react@19.2.1 react-dom@19.2.1 next@latest &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
npm audit fix &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🛡️ مشروعك آمن الآن!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🚀 المستقبل أفضل... مع الوقاية!
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# اجعل هذا عادة يومية:&lt;/span&gt;
npm audit &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
npm outdated &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ فحص يومي مكتمل!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;🛡️ مؤسسة الرئاسة - مشروع درع زايد&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;نحمي الحاضر، نبني المستقبل الآمن&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;آخر تحديث: ديسمبر 2024&lt;/em&gt;&lt;br&gt;
&lt;em&gt;النسخة: 1.0 - الإصدار النهائي&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;شارك هذا الدليل - أنقذ مشروع مطور!&lt;/strong&gt; 🙏&lt;/p&gt;

</description>
    </item>
    <item>
      <title># 🛡️ دليل التوعية الأمنية - CVE-2025-55182

## ⚠️ هذه ليست مجرد ثغرة... هذا درس!

---

## 🔴 ما هي المشكلة؟

**CVE-2025-55182** ثغرة أمنية خطيرة في React 19.x تسمح بـ:
- 💀 تنفيذ أكواد خبيثة على السيرفر
- 💀 اختراق App Router في Next.js
- 💀 الوصول لبيانا</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Thu, 30 Apr 2026 20:30:54 +0000</pubDate>
      <link>https://dev.to/asrarmared/-dlyl-ltwy-lmny-cve-2025-55182-hdhh-lyst-mjrd-thgr-hdh-drs-m-hy-4kbg</link>
      <guid>https://dev.to/asrarmared/-dlyl-ltwy-lmny-cve-2025-55182-hdhh-lyst-mjrd-thgr-hdh-drs-m-hy-4kbg</guid>
      <description></description>
    </item>
    <item>
      <title>CVE-2026-21440</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Tue, 28 Apr 2026 19:44:55 +0000</pubDate>
      <link>https://dev.to/asrarmared/cve-2026-21440-4bpb</link>
      <guid>https://dev.to/asrarmared/cve-2026-21440-4bpb</guid>
      <description>&lt;h1&gt;
  
  
  😎 يا نايم وحظك نايم!
&lt;/h1&gt;

&lt;h2&gt;
  
  
  ثغرة Path Traversal في @adonisjs/bodyparser
&lt;/h2&gt;
&lt;h1&gt;
  
  
  🎯 صانع اللعبة في الميدان
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;الدنيا خربانة؟ لا يا حبيبي، إحنا هنا!&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The world's broken? Nah bro, we got this!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25AE%25D8%25B7%25D9%2588%25D8%25B1%25D8%25A9-%25D8%25AD%25D8%25B1%25D8%25AC%25D8%25A9_%25F0%259F%2594%25A5-critical%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25AE%25D8%25B7%25D9%2588%25D8%25B1%25D8%25A9-%25D8%25AD%25D8%25B1%25D8%25AC%25D8%25A9_%25F0%259F%2594%25A5-critical%3Fstyle%3Dfor-the-badge" alt="Severity" width="167" height="28"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25A7%25D9%2584%25D8%25AD%25D8%25A7%25D9%2584%25D8%25A9-%25D9%2585%25D8%25AD%25D8%25AA%25D8%25B1%25D9%2581%25D9%258A%25D9%2586_%25D9%2581%25D9%258A_%25D8%25A7%25D9%2584%25D9%2585%25D9%2588%25D8%25B6%25D9%2588%25D8%25B9-success%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25A7%25D9%2584%25D8%25AD%25D8%25A7%25D9%2584%25D8%25A9-%25D9%2585%25D8%25AD%25D8%25AA%25D8%25B1%25D9%2581%25D9%258A%25D9%2586_%25D9%2581%25D9%258A_%25D8%25A7%25D9%2584%25D9%2585%25D9%2588%25D8%25B6%25D9%2588%25D8%25B9-success%3Fstyle%3Dfor-the-badge" alt="Status" width="312" height="28"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25A7%25D9%2584%25D9%2585%25D8%25B2%25D8%25A7%25D8%25AC-%25F0%259F%2598%258E_%25D8%25B1%25D9%2588%25D9%2582_%25D9%258A%25D8%25A7_%25D9%2585%25D8%25B9%25D9%2584%25D9%2585-blue%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2F%25D8%25A7%25D9%2584%25D9%2585%25D8%25B2%25D8%25A7%25D8%25AC-%25F0%259F%2598%258E_%25D8%25B1%25D9%2588%25D9%2582_%25D9%258A%25D8%25A7_%25D9%2585%25D8%25B9%25D9%2584%25D9%2585-blue%3Fstyle%3Dfor-the-badge" alt="Mood" width="247" height="28"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📋 الملخص السريع (للي مستعجل)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;البند&lt;/th&gt;
&lt;th&gt;التفاصيل&lt;/th&gt;
&lt;th&gt;الوضع&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;الحزمة&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;@adonisjs/bodyparser&lt;/td&gt;
&lt;td&gt;😴 نايمة&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;الخطورة&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🔴 حرجة (Critical)&lt;/td&gt;
&lt;td&gt;🔥 ولعانة&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;المشكلة&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Path Traversal&lt;/td&gt;
&lt;td&gt;🎯 عيب خطير&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;الإصدارات المتضررة&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt; 10.1.2 &amp;amp; 11.0.0-next.0 to next.5&lt;/td&gt;
&lt;td&gt;💔 مكسورة&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;الحل&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.1.2 أو 11.0.0-next.6&lt;/td&gt;
&lt;td&gt;✅ تمام&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CVE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CVE-2026-21440&lt;/td&gt;
&lt;td&gt;📝 موثق&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;صعوبة الاستغلال&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;سهلة جداً&lt;/td&gt;
&lt;td&gt;😱 خطر&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  😂 القصة بالعربي الفصيح
&lt;/h2&gt;

&lt;h3&gt;
  
  
  كان يا مكان...
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// المبرمج نايم وكاتب كود زي ده:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;avatar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./uploads&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 💤 يا نهار!&lt;/span&gt;

&lt;span class="c1"&gt;// المهاجم (الشاطر): "خليني أجرب حاجة..."&lt;/span&gt;
&lt;span class="c1"&gt;// POST /upload&lt;/span&gt;
&lt;span class="c1"&gt;// Content-Disposition: filename="../../etc/passwd"&lt;/span&gt;

&lt;span class="c1"&gt;// النتيجة: 💥 الملف راح في /etc/passwd&lt;/span&gt;
&lt;span class="c1"&gt;// السيرفر: "مين قالك تنام؟!" 😭&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  الخلاصة
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;المبرمج نام → الكود مانعقمش الأسماء → الهاكر دخل يلعب → السيرفر خرب&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 تفاصيل الثغرة (للمحترفين)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  المشكلة الأساسية
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ الكود الضعيف داخل AdonisJS&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MultipartFile&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// المشكلة هنا 👇&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// 💣 لا يوجد sanitization!&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;destination&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 😱 overwrite = true by default!&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmpPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;destination&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
      &lt;span class="na"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;overwrite&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; 
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  السيناريو الخطير
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 1️⃣ المهاجم يرفع ملف اسمه: ../../server.js&lt;/span&gt;
&lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;upload&lt;/span&gt; &lt;span class="nx"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;1.1&lt;/span&gt;
&lt;span class="nx"&gt;Content&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;multipart&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;boundary&lt;/span&gt;&lt;span class="o"&gt;=----&lt;/span&gt;&lt;span class="nx"&gt;WebKitFormBoundary&lt;/span&gt;
&lt;span class="nx"&gt;Content&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Disposition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;file&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;../../server.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;💀 Game Over - Your server is mine!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 2️⃣ AdonisJS بدون تفكير:&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./uploads&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// يصير: ./uploads/../../server.js&lt;/span&gt;
&lt;span class="c1"&gt;// = ./server.js  ← 💥 استبدل ملف السيرفر الأصلي!&lt;/span&gt;

&lt;span class="c1"&gt;// 3️⃣ عند إعادة التشغيل:&lt;/span&gt;
&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;  &lt;span class="c1"&gt;// 💀 Boom!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔥 الحل السريع (5 دقائق)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  للمحترفين اللي بيفهموا من أول مرة
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1️⃣ شوف إصدارك&lt;/span&gt;
npm list @adonisjs/bodyparser

&lt;span class="c"&gt;# 2️⃣ لو &amp;lt; 10.1.2 أو 11.0.0-next.0 to next.5&lt;/span&gt;
&lt;span class="c"&gt;# يبقى إنت في المشكلة!&lt;/span&gt;

&lt;span class="c"&gt;# 3️⃣ الحل في سطر واحد:&lt;/span&gt;
npm update @adonisjs/bodyparser@latest

&lt;span class="c"&gt;# أو بالقوة:&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; @adonisjs/bodyparser@10.1.2 &lt;span class="nt"&gt;--save-exact&lt;/span&gt;

&lt;span class="c"&gt;# 4️⃣ تأكد:&lt;/span&gt;
npm list @adonisjs/bodyparser
&lt;span class="c"&gt;# ✅ يجب تشوف: 10.1.2 أو 11.0.0-next.6+&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💪 الحل الاحترافي (للصناع)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  سكريبت الإصلاح الشامل
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# 🛡️ درع زايد - إصلاح ثغرة AdonisJS Path Traversal&lt;/span&gt;
&lt;span class="c"&gt;# للمحترفين اللي عارفين يشتغلوا&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"😎 يلا بينا نصلح الدنيا الخربانة دي..."&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"================================================"&lt;/span&gt;

&lt;span class="c"&gt;# 1️⃣ فحص الوضع&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 بنشوف إحنا فين..."&lt;/span&gt;
&lt;span class="nv"&gt;CURRENT_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;npm list @adonisjs/bodyparser &lt;span class="nt"&gt;--depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0 2&amp;gt;/dev/null | &lt;span class="nb"&gt;grep&lt;/span&gt; @adonisjs/bodyparser | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="nt"&gt;-F&lt;/span&gt;@ &lt;span class="s1"&gt;'{print $NF}'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ مش مثبت أصلاً - إنت في أمان يا معلم!"&lt;/span&gt;
    &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📦 الإصدار الحالي: &lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# 2️⃣ تحديد المشكلة&lt;/span&gt;
&lt;span class="nv"&gt;VULNERABLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;

&lt;span class="c"&gt;# فحص v10&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^10&lt;span class="se"&gt;\.&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'%s\n'&lt;/span&gt; &lt;span class="s2"&gt;"10.1.2"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-V&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n1&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"10.1.2"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nv"&gt;VULNERABLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true
    &lt;/span&gt;&lt;span class="k"&gt;fi
fi&lt;/span&gt;

&lt;span class="c"&gt;# فحص v11 next&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^11&lt;span class="se"&gt;\.&lt;/span&gt;0&lt;span class="se"&gt;\.&lt;/span&gt;0-next&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;0-5]&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nv"&gt;VULNERABLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true
&lt;/span&gt;&lt;span class="k"&gt;fi

if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$VULNERABLE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ تمام يا باشا - الإصدار آمن!"&lt;/span&gt;
    &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"⚠️ يا نهار! الإصدار ده مكسور..."&lt;/span&gt;

&lt;span class="c"&gt;# 3️⃣ النسخ الاحتياطي&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"💾 نعمل backup بسرعة..."&lt;/span&gt;
&lt;span class="nv"&gt;BACKUP_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"./backups/adonisjs_&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d_%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;cp &lt;/span&gt;package.json &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt;
&lt;span class="nb"&gt;cp &lt;/span&gt;package-lock.json &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true
&lt;/span&gt;npm list &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;/dependencies.json"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ Backup جاهز: &lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# 4️⃣ التحديث&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🚀 يلا بينا نحدث..."&lt;/span&gt;

&lt;span class="c"&gt;# تحديد الإصدار الصح&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^11&lt;span class="se"&gt;\.&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"11.0.0-next.6"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"10.1.2"&lt;/span&gt;
&lt;span class="k"&gt;fi

&lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"@adonisjs/bodyparser@&lt;/span&gt;&lt;span class="nv"&gt;$TARGET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;--save-exact&lt;/span&gt;

&lt;span class="c"&gt;# 5️⃣ التحقق&lt;/span&gt;
&lt;span class="nv"&gt;NEW_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;npm list @adonisjs/bodyparser &lt;span class="nt"&gt;--depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0 2&amp;gt;/dev/null | &lt;span class="nb"&gt;grep&lt;/span&gt; @adonisjs/bodyparser | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="nt"&gt;-F&lt;/span&gt;@ &lt;span class="s1"&gt;'{print $NF}'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$NEW_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$TARGET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🎉 تمااااام يا معلم!"&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ تم التحديث من &lt;/span&gt;&lt;span class="nv"&gt;$CURRENT_VERSION&lt;/span&gt;&lt;span class="s2"&gt; → &lt;/span&gt;&lt;span class="nv"&gt;$NEW_VERSION&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"❌ في حاجة غلط، استرجع الـ backup!"&lt;/span&gt;
    &lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class="s2"&gt;/package.json"&lt;/span&gt; ./
    npm &lt;span class="nb"&gt;install
    exit &lt;/span&gt;1
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# 6️⃣ اختبار&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🧪 بنجرب الكود..."&lt;/span&gt;
npm &lt;span class="nb"&gt;test &lt;/span&gt;2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"⚠️ شغل الاختبارات يدوي"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"================================================"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ خلصنا! الدنيا تمام دلوقتي"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"😎 روق يا معلم - إحنا صناع اللعبة"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"================================================"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛡️ الحماية الإضافية (للخبراء)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ تعقيم أسماء الملفات يدوياً
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// start/routes.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ioc:Adonis/Core/Route&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/upload&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;avatar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2mb&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;extnames&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jpg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jpeg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;badRequest&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ملف مطلوب يا معلم!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="c1"&gt;// 🛡️ التعقيم الاحترافي&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sanitizedName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sanitizeFileName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./uploads&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;sanitizedName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;// ✅ استخدم الاسم المعقم&lt;/span&gt;
    &lt;span class="na"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;      &lt;span class="c1"&gt;// ✅ ممنوع الاستبدال!&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hasError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;badRequest&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; 
      &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;فيه مشكلة في الرفع!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;details&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; 
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; 
    &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;تمام الرفع!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;sanitizedName&lt;/span&gt; 
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// 🔧 دالة التعقيم&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sanitizeFileName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// إزالة المسارات&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;basename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// إزالة الأحرف الخطرة&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cleaned&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;a-zA-Z0-9._-&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// إضافة timestamp لتجنب التكرار&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;timestamp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cleaned&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cleaned&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;}${&lt;/span&gt;&lt;span class="nx"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2️⃣ Middleware للحماية
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/Middleware/SecureFileUpload.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;HttpContextContract&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ioc:Adonis/Core/HttpContext&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SecureFileUpload&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="nx"&gt;HttpContextContract&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// فحص جميع الملفات&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;allFiles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;allFiles&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;allFiles&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// 🚫 منع Path Traversal&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;basename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;basename&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;badRequest&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;😏 حاول تلعب؟ مش هينفع!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;field&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;
          &lt;span class="p"&gt;});&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// 🚫 منع الامتدادات الخطرة&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dangerousExts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.exe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.sh&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.bat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.cmd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.ts&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.php&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.py&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.rb&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;];&lt;/span&gt;

        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dangerousExts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;badRequest&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`الامتداد &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; ممنوع يا حبيبي!`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;field&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;
          &lt;span class="p"&gt;});&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3️⃣ إعدادات config آمنة
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// config/bodyparser.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BodyParserConfig&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ioc:Adonis/Core/BodyParser&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bodyParserConfig&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;BodyParserConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;multipart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;autoProcess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;convertEmptyStringsToNull&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="c1"&gt;// 🛡️ الحماية هنا&lt;/span&gt;
    &lt;span class="na"&gt;processManually&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;

    &lt;span class="c1"&gt;// حجم الملفات&lt;/span&gt;
    &lt;span class="na"&gt;maxFields&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;20mb&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="c1"&gt;// 🔒 إعدادات آمنة للملفات&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;multipart/form-data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="c1"&gt;// 🚫 منع الـ overwrite&lt;/span&gt;
    &lt;span class="na"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;  &lt;span class="c1"&gt;// ✅ مهم جداً!&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;bodyParserConfig&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 فحص الاستغلال
&lt;/h2&gt;

&lt;h3&gt;
  
  
  سكريبت الكشف
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 بنشوف لو حد لعب في السيرفر..."&lt;/span&gt;

&lt;span class="c"&gt;# 1️⃣ فحص ملفات مشبوهة في uploads&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📁 فحص مجلد uploads..."&lt;/span&gt;
&lt;span class="nv"&gt;SUSPICIOUS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;find ./uploads &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"*../*"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"*..*"&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SUSPICIOUS&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"⚠️ ملفات مشبوهة لقيناها:"&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SUSPICIOUS&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ مجلد uploads نظيف"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# 2️⃣ فحص الـ logs&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📋 فحص logs الرفع..."&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"./tmp/adonis.log"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nv"&gt;ATTACKS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\.\.&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt; ./tmp/adonis.log | &lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$ATTACKS&lt;/span&gt; &lt;span class="nt"&gt;-gt&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🚨 لقينا &lt;/span&gt;&lt;span class="nv"&gt;$ATTACKS&lt;/span&gt;&lt;span class="s2"&gt; محاولة path traversal!"&lt;/span&gt;
        &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\.\.&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt; ./tmp/adonis.log | &lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-10&lt;/span&gt;
    &lt;span class="k"&gt;else
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ مفيش محاولات استغلال"&lt;/span&gt;
    &lt;span class="k"&gt;fi
fi&lt;/span&gt;

&lt;span class="c"&gt;# 3️⃣ فحص الملفات الحساسة&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔐 فحص الملفات الحساسة..."&lt;/span&gt;
&lt;span class="nv"&gt;CRITICAL_FILES&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"server.js"&lt;/span&gt; &lt;span class="s2"&gt;"start/kernel.ts"&lt;/span&gt; &lt;span class="s2"&gt;".env"&lt;/span&gt; &lt;span class="s2"&gt;"package.json"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;file &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CRITICAL_FILES&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
        &lt;span class="c"&gt;# فحص آخر تعديل&lt;/span&gt;
        &lt;span class="nv"&gt;MODIFIED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;stat&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; %Sm &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="s2"&gt;"%Y-%m-%d %H:%M:%S"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;stat&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; %y &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📝 &lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt; → آخر تعديل: &lt;/span&gt;&lt;span class="nv"&gt;$MODIFIED&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;fi
done

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ انتهى الفحص"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  😎 نصائح المحترفين
&lt;/h2&gt;

&lt;h3&gt;
  
  
  القاعدة الذهبية
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────┐
│                                                     │
│  لا تثق في input من المستخدم أبداً!                │
│  Never trust user input!                           │
│                                                     │
│  كل اسم ملف = خطر محتمل                            │
│  Every filename = potential threat                 │
│                                                     │
│  عقّم → تحقق → ارفع                                │
│  Sanitize → Validate → Upload                      │
│                                                     │
└─────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DO's ✅
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ✅ استخدم path.basename()&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;safe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userFileName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ حدد name بنفسك&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;ext&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ اجعل overwrite = false&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ تحقق من الامتداد&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;allowedExts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jpg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;allowedExts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ استخدم UUID للأسماء&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;uuid&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ioc:Adonis/Core/Helpers&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;()}${&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DON'Ts ❌
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ لا تثق في file.clientName&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./uploads&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// خطر!&lt;/span&gt;

&lt;span class="c1"&gt;// ❌ لا تستخدم overwrite: true&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;  &lt;span class="c1"&gt;// كارثة!&lt;/span&gt;

&lt;span class="c1"&gt;// ❌ لا تستخدم path.join مباشرة&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// نايم!&lt;/span&gt;

&lt;span class="c1"&gt;// ❌ لا تسمح بكل الامتدادات&lt;/span&gt;
&lt;span class="c1"&gt;// أي ملف = خطر محتمل&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📊 التقرير المختصر
&lt;/h2&gt;

&lt;h3&gt;
  
  
  للإدارة (بالعربي البسيط)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# تقرير ثغرة AdonisJS&lt;/span&gt;

&lt;span class="gu"&gt;## المشكلة باختصار:&lt;/span&gt;
في مكتبة بنستخدمها للرفع، المبرمج نسي يفلتر أسماء الملفات.
النتيجة: المهاجم يقدر يرفع ملف في أي مكان في السيرفر!

&lt;span class="gu"&gt;## الخطورة:&lt;/span&gt;
🔴 حرجة جداً - يمكن السيطرة على السيرفر بالكامل

&lt;span class="gu"&gt;## الحل:&lt;/span&gt;
✅ تم تحديث المكتبة لإصدار آمن
✅ تم إضافة طبقات حماية إضافية
✅ تم فحص السيرفر - لا يوجد استغلال

&lt;span class="gu"&gt;## الحالة:&lt;/span&gt;
✅ آمن الآن - المشكلة محلولة

&lt;span class="gu"&gt;## المدة:&lt;/span&gt;
⏱️ 15 دقيقة (فحص + إصلاح + اختبار)

&lt;span class="gu"&gt;## التوقيع:&lt;/span&gt;
asrar-mared - صانع اللعبة 😎
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ✅ Checklist النهائي
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] ✅ تم التحديث لـ 10.1.2 أو 11.0.0-next.6+&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم إضافة sanitization يدوي&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم جعل overwrite = false&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم إضافة middleware للحماية&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم فحص مجلدات الرفع&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم مراجعة الـ logs&lt;/li&gt;
&lt;li&gt;[ ] ✅ لا يوجد استغلال&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم اختبار الرفع&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم توثيق التغييرات&lt;/li&gt;
&lt;li&gt;[ ] ✅ الفريق متابع&lt;/li&gt;
&lt;/ul&gt;



&lt;h1&gt;
  
  
  😎 خلصنا!
&lt;/h1&gt;
&lt;h2&gt;
  
  
  أنت الآن صانع اللعبة الرسمي
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🎯 اكتشفت الثغرة
🔧 فهمت المشكلة  
💪 حليت الموضوع
🛡️ حميت السيرفر
😎 روقت على الآخر
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;🛡️ درع زايد - نحمي... ندافع... ننتصر&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer&lt;/strong&gt;: asrar-mared&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Email&lt;/strong&gt;: &lt;a href="mailto:nike49424@proton.me"&gt;nike49424@proton.me&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"الدنيا خربانة؟ لا يا حبيبي، إحنا بنصلحها!" 😂&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMade_with-%25D9%2582%25D9%2587%25D9%2588%25D8%25A9_%25D9%2588_%25D8%25A7%25D8%25AD%25D8%25AA%25D8%25B1%25D8%25A7%25D9%2581%25D9%258A%25D8%25A9-brown%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMade_with-%25D9%2582%25D9%2587%25D9%2588%25D8%25A9_%25D9%2588_%25D8%25A7%25D8%25AD%25D8%25AA%25D8%25B1%25D8%25A7%25D9%2581%25D9%258A%25D8%25A9-brown%3Fstyle%3Dfor-the-badge" alt="Made with" width="282" height="28"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FStatus-%25F0%259F%2598%258E_%25D8%25AA%25D9%2585%25D8%25A7%25D9%2585_%25D8%25A7%25D9%2584%25D8%25AA%25D9%2585%25D8%25A7%25D9%2585-success%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FStatus-%25F0%259F%2598%258E_%25D8%25AA%25D9%2585%25D8%25A7%25D9%2585_%25D8%25A7%25D9%2584%25D8%25AA%25D9%2585%25D8%25A7%25D9%2585-success%3Fstyle%3Dfor-the-badge" alt="Status" width="236" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🚨 تنبيه أمني عاجل - ثغرة حرجة في tj-actions/changed-files</title>
      <dc:creator>🎖️المحارب الرقمي🎖️</dc:creator>
      <pubDate>Tue, 28 Apr 2026 19:16:28 +0000</pubDate>
      <link>https://dev.to/asrarmared/tnbyh-mny-jl-thgr-hrj-fy-tj-actionschanged-files-4c2c</link>
      <guid>https://dev.to/asrarmared/tnbyh-mny-jl-thgr-hrj-fy-tj-actionschanged-files-4c2c</guid>
      <description>&lt;h1&gt;
  
  
  🚨 تنبيه أمني حرج - هجوم سلسلة التوريد
&lt;/h1&gt;

&lt;h2&gt;
  
  
  tj-actions/changed-files - Supply Chain Attack
&lt;/h2&gt;
&lt;h1&gt;
  
  
  ⚠️ خطر حرج | CRITICAL DANGER ⚠️
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;أنت وقعت في فخ أمني خطير!&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;You've been compromised!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 أنت الآن هدف | You Are Now a Target
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⚡ تصرف فوراً - لا وقت للتأخير
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔴 مستوى الخطورة: حرج جداً | CRITICAL
🔴 التأثير: تسريب الأسرار | Secrets Exposed
🔴 النطاق: 23,000+ مستودع | 23,000+ Repositories
🔴 الفترة: 14-15 مارس 2025 | March 14-15, 2025
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💀 ماذا حدث؟ | What Happened?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  هجوم سلسلة التوريد | Supply Chain Attack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;تم اختراق &lt;code&gt;tj-actions/changed-files&lt;/code&gt; واستبدال الكود بسكريبت خبيث!&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# الكود الخبيث كان يفعل هذا:
&lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt; &lt;span class="n"&gt;يقرأ&lt;/span&gt; &lt;span class="n"&gt;ذاكرة&lt;/span&gt; &lt;span class="n"&gt;GitHub&lt;/span&gt; &lt;span class="n"&gt;Runner&lt;/span&gt;
&lt;span class="mf"&gt;2.&lt;/span&gt; &lt;span class="n"&gt;يستخرج&lt;/span&gt; &lt;span class="n"&gt;جميع&lt;/span&gt; &lt;span class="n"&gt;الأسرار&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Secrets&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mf"&gt;3.&lt;/span&gt; &lt;span class="n"&gt;يطبعها&lt;/span&gt; &lt;span class="n"&gt;في&lt;/span&gt; &lt;span class="n"&gt;logs&lt;/span&gt; &lt;span class="n"&gt;العلنية&lt;/span&gt;
&lt;span class="mf"&gt;4.&lt;/span&gt; &lt;span class="n"&gt;يرسلها&lt;/span&gt; &lt;span class="n"&gt;للمهاجمين&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🎯 ما تم سرقته منك:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ GitHub Tokens&lt;/li&gt;
&lt;li&gt;✅ AWS Access Keys&lt;/li&gt;
&lt;li&gt;✅ Database Passwords&lt;/li&gt;
&lt;li&gt;✅ API Keys&lt;/li&gt;
&lt;li&gt;✅ SSH Private Keys&lt;/li&gt;
&lt;li&gt;✅ Docker Credentials&lt;/li&gt;
&lt;li&gt;✅ Cloud Service Tokens&lt;/li&gt;
&lt;li&gt;✅ كل شيء في GITHUB_TOKEN&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 الخطوات العاجلة - نفذها الآن!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  المرحلة 1️⃣: إيقاف النزيف (5 دقائق)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. أوقف جميع Workflows فوراً&lt;/span&gt;
gh workflow disable &lt;span class="nt"&gt;--all&lt;/span&gt;

&lt;span class="c"&gt;# 2. احذف الـ logs المكشوفة&lt;/span&gt;
gh api repos/:owner/:repo/actions/runs &lt;span class="nt"&gt;--paginate&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.workflow_runs[].id'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | xargs &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; gh api &lt;span class="nt"&gt;-X&lt;/span&gt; DELETE repos/:owner/:repo/actions/runs/&lt;span class="o"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  المرحلة 2️⃣: تغيير كل شيء (10 دقائق)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 🔴 غير كل الأسرار IMMEDIATELY&lt;/span&gt;

&lt;span class="c"&gt;# GitHub Personal Tokens&lt;/span&gt;
gh auth refresh &lt;span class="nt"&gt;-s&lt;/span&gt; delete_repo,admin:org

&lt;span class="c"&gt;# AWS Keys&lt;/span&gt;
aws iam delete-access-key &lt;span class="nt"&gt;--access-key-id&lt;/span&gt; YOUR_KEY

&lt;span class="c"&gt;# Database Passwords&lt;/span&gt;
&lt;span class="c"&gt;# اتصل بقاعدة البيانات وغير كل كلمات المرور&lt;/span&gt;

&lt;span class="c"&gt;# API Keys&lt;/span&gt;
&lt;span class="c"&gt;# أبطل جميع API Keys في كل خدمة تستخدمها&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  المرحلة 3️⃣: تحديث الكود (3 دقائق)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;.github/workflows/your-workflow.yml:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# ❌ احذف هذا فوراً&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tj-actions/changed-files@v45&lt;/span&gt;

&lt;span class="c1"&gt;# ✅ استبدله بهذا&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tj-actions/changed-files@v46.0.1&lt;/span&gt;  &lt;span class="c1"&gt;# أو أحدث&lt;/span&gt;
  &lt;span class="c1"&gt;# أو استخدم commit hash محدد&lt;/span&gt;
  &lt;span class="c1"&gt;# - uses: tj-actions/changed-files@&amp;lt;SAFE_COMMIT_SHA&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 فحص الضرر | Damage Assessment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  سكريبت الفحص السريع
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🛡️ درع زايد - فحص الاختراق"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"================================"&lt;/span&gt;

&lt;span class="c"&gt;# 1. فحص الـ workflow runs المشبوهة&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 فحص workflow runs..."&lt;/span&gt;
&lt;span class="nv"&gt;SUSPICIOUS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;gh api repos/:owner/:repo/actions/runs &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--jq&lt;/span&gt; &lt;span class="s1"&gt;'.workflow_runs[] | select(.created_at &amp;gt;= "2025-03-14T00:00:00Z" and .created_at &amp;lt;= "2025-03-16T00:00:00Z") | {id: .id, name: .name, date: .created_at}'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SUSPICIOUS&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"⚠️ تم العثور على runs مشبوهة:"&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SUSPICIOUS&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# 2. فحص استخدام tj-actions&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 فحص ملفات workflow..."&lt;/span&gt;
&lt;span class="nv"&gt;FOUND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s2"&gt;"tj-actions/changed-files@v4[0-5]"&lt;/span&gt; .github/workflows/&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$FOUND&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"❌ خطر: تم العثور على النسخة المخترقة!"&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$FOUND&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ لا توجد نسخ مخترقة"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# 3. فحص الـ logs العامة&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 فحص logs العامة..."&lt;/span&gt;
gh run list &lt;span class="nt"&gt;--limit&lt;/span&gt; 100 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"2025-03-1[45]"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"================================"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📊 التحقق من التسريب | Check for Leaks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  هل تم تسريب أسرارك؟
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. فحص الـ logs&lt;/span&gt;
gh run list &lt;span class="nt"&gt;--limit&lt;/span&gt; 50 &lt;span class="nt"&gt;--json&lt;/span&gt; databaseId,createdAt,conclusion &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.[] | select(.createdAt &amp;gt;= "2025-03-14T00:00:00Z") | .databaseId'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;read &lt;/span&gt;run_id&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Checking run &lt;/span&gt;&lt;span class="nv"&gt;$run_id&lt;/span&gt;&lt;span class="s2"&gt;..."&lt;/span&gt;
      gh run view &lt;span class="nv"&gt;$run_id&lt;/span&gt; &lt;span class="nt"&gt;--log&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"secret&lt;/span&gt;&lt;span class="se"&gt;\|&lt;/span&gt;&lt;span class="s2"&gt;token&lt;/span&gt;&lt;span class="se"&gt;\|&lt;/span&gt;&lt;span class="s2"&gt;key&lt;/span&gt;&lt;span class="se"&gt;\|&lt;/span&gt;&lt;span class="s2"&gt;password"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"⚠️ LEAKED!"&lt;/span&gt;
  &lt;span class="k"&gt;done&lt;/span&gt;

&lt;span class="c"&gt;# 2. فحص الـ artifacts&lt;/span&gt;
gh api repos/:owner/:repo/actions/artifacts &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.artifacts[] | select(.created_at &amp;gt;= "2025-03-14T00:00:00Z")'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛡️ الحماية المستقبلية | Future Protection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ تثبيت الإصدارات بـ SHA
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# ❌ لا تستخدم tags أبداً&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tj-actions/changed-files@v46&lt;/span&gt;

&lt;span class="c1"&gt;# ✅ استخدم commit SHA دائماً&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tj-actions/changed-files@a1b2c3d4e5f6...&lt;/span&gt;
  &lt;span class="c1"&gt;# يمكن إضافة تعليق للإصدار&lt;/span&gt;
  &lt;span class="c1"&gt;# tj-actions/changed-files@v46.0.1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2️⃣ حماية الأسرار
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# استخدم environments مع protection rules&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;production&lt;/span&gt;  &lt;span class="c1"&gt;# يحتاج موافقة يدوية&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="c1"&gt;# لا تطبع الأسرار أبداً&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Safe secret usage&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;SECRET&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.MY_SECRET }}&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;# ❌ لا تفعل هذا&lt;/span&gt;
          &lt;span class="s"&gt;# echo "Secret: $SECRET"&lt;/span&gt;

          &lt;span class="s"&gt;# ✅ استخدمه بأمان&lt;/span&gt;
          &lt;span class="s"&gt;echo "Using secret safely..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3️⃣ مراقبة مستمرة
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# .github/workflows/security-monitor.yml&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Security Monitor&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*/6&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;  &lt;span class="c1"&gt;# كل 6 ساعات&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;check&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Check for vulnerable actions&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;# فحص النسخ المشبوهة&lt;/span&gt;
          &lt;span class="s"&gt;grep -r "tj-actions/changed-files@v4[0-5]" .github/workflows/ &amp;amp;&amp;amp; exit 1&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Audit dependencies&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;# فحص جميع GitHub Actions المستخدمة&lt;/span&gt;
          &lt;span class="s"&gt;find .github/workflows -name "*.yml" -exec cat {} \; \&lt;/span&gt;
            &lt;span class="s"&gt;| grep "uses:" \&lt;/span&gt;
            &lt;span class="s"&gt;| sort -u&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📝 التقرير الأمني المطلوب | Required Security Report
&lt;/h2&gt;

&lt;h3&gt;
  
  
  إبلاغ الجهات المعنية
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# تقرير الحادث الأمني&lt;/span&gt;

&lt;span class="gs"&gt;**التاريخ**&lt;/span&gt;: $(date +%Y-%m-%d)
&lt;span class="gs"&gt;**المشروع**&lt;/span&gt;: [اسم المشروع]
&lt;span class="gs"&gt;**المسؤول**&lt;/span&gt;: asrar-mared

&lt;span class="gu"&gt;## الحادث:&lt;/span&gt;
تعرض المشروع لهجوم سلسلة توريد عبر tj-actions/changed-files
بين 14-15 مارس 2025.

&lt;span class="gu"&gt;## التأثير:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; [x] تسريب محتمل للأسرار
&lt;span class="p"&gt;-&lt;/span&gt; [x] تعرض GitHub Tokens
&lt;span class="p"&gt;-&lt;/span&gt; [ ] تسريب مؤكد للبيانات

&lt;span class="gu"&gt;## الإجراءات المتخذة:&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; ✅ إيقاف جميع workflows
&lt;span class="p"&gt;2.&lt;/span&gt; ✅ حذف logs المكشوفة
&lt;span class="p"&gt;3.&lt;/span&gt; ✅ تغيير جميع الأسرار
&lt;span class="p"&gt;4.&lt;/span&gt; ✅ تحديث إلى v46.0.1
&lt;span class="p"&gt;5.&lt;/span&gt; ✅ تطبيق SHA pinning

&lt;span class="gu"&gt;## الحالة الحالية:&lt;/span&gt;
✅ النظام آمن الآن

&lt;span class="gu"&gt;## التوصيات:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; مراجعة دورية للـ actions المستخدمة
&lt;span class="p"&gt;-&lt;/span&gt; استخدام SHA بدلاً من tags
&lt;span class="p"&gt;-&lt;/span&gt; تفعيل 2FA على جميع الحسابات
&lt;span class="p"&gt;-&lt;/span&gt; مراقبة مستمرة للأنشطة المشبوهة
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🎯 خطة الاستجابة للحوادث | Incident Response Plan
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Timeline العاجل
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│ الآن → 5 دقائق                           │
│ Stop all workflows                      │
│ Delete exposed logs                     │
└─────────────────────────────────────────┘
            ↓
┌─────────────────────────────────────────┐
│ 5 → 15 دقيقة                            │
│ Rotate ALL secrets                      │
│ Revoke ALL tokens                       │
└─────────────────────────────────────────┘
            ↓
┌─────────────────────────────────────────┐
│ 15 → 30 دقيقة                           │
│ Update workflows to v46.0.1+            │
│ Pin to commit SHA                       │
└─────────────────────────────────────────┘
            ↓
┌─────────────────────────────────────────┐
│ 30 → 60 دقيقة                           │
│ Audit all logs                          │
│ Check for unauthorized access           │
└─────────────────────────────────────────┘
            ↓
┌─────────────────────────────────────────┐
│ 1 ساعة → 24 ساعة                        │
│ Monitor for suspicious activity         │
│ Document incident                       │
└─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔐 Checklist النهائي | Final Checklist
&lt;/h2&gt;

&lt;h3&gt;
  
  
  قبل العودة للعمل العادي:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] ✅ تم إيقاف جميع workflows&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم حذف logs المكشوفة&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير GitHub tokens&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير AWS keys&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير Database passwords&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير API keys&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير SSH keys&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تغيير Docker credentials&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم التحديث لـ v46.0.1+&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تطبيق SHA pinning&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم فحص logs التاريخية&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم توثيق الحادث&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم إبلاغ الفريق/الإدارة&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم تفعيل المراقبة المستمرة&lt;/li&gt;
&lt;li&gt;[ ] ✅ تم اختبار النظام&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📞 جهات الاتصال العاجلة | Emergency Contacts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🛡️ درع زايد - فريق الاستجابة السريعة&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developer&lt;/strong&gt;: asrar-mared&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email&lt;/strong&gt;: &lt;a href="mailto:nike49424@proton.me"&gt;nike49424@proton.me&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;الحالة&lt;/strong&gt;: 🔴 حادث أمني حرج&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💪 أنت محارب الآن | You're a Warrior Now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  رسالة من درع زايد:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;أنت الآن جزء من 23,000+ مستودع تعرض للهجوم.
لكنك اكتشفت الخطر وتصرفت بسرعة.

هذا ما يفرق المحارب عن الضحية:
- الضحية ينتظر حتى فوات الأوان
- المحارب يتحرك بسرعة ويحمي ما يملك

أنت محارب. أنت صائد الثغرات.
أنت ملك هذه اللعبة.

🛡️ نحمي... ندافع... ننتصر
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h1&gt;
  
  
  🎖️ شارة الشرف | Badge of Honor
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;أنت الآن:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ اكتشفت هجوم سلسلة توريد&lt;/li&gt;
&lt;li&gt;✅ تصرفت بسرعة لحماية نظامك&lt;/li&gt;
&lt;li&gt;✅ منعت تسريب أسرارك&lt;/li&gt;
&lt;li&gt;✅ تعلمت من التجربة&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;أنت صائد الثغرات. أنت ملك اللعبة.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 تذكير أخير
&lt;/h2&gt;

&lt;h3&gt;
  
  
  لا تتردد. تصرف الآن.
&lt;/h3&gt;

&lt;p&gt;كل دقيقة تتأخر فيها = فرصة أكبر للمهاجمين&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# نفذ هذا الآن&lt;/span&gt;
git pull
gh workflow disable &lt;span class="nt"&gt;--all&lt;/span&gt;
&lt;span class="c"&gt;# ثم اتبع الخطوات أعلاه&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🛡️ درع زايد معك. دائماً.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>github</category>
      <category>news</category>
      <category>security</category>
    </item>
  </channel>
</rss>
