🏠 الرئيسية تطوير المنتديات مركز رفع ملفات احترافي بـ PHP و JSON: رحلة من البر...
📅 السبت 2026/06/27 · 🕐 09:14 م · ✏️ آخر تحديث: منذ 1 شهر بواسطة anwer
مركز رفع ملفات احترافي بـ PHP و JSON: رحلة من البرمجة إلى التحصين الأمني
أهلاً بكم أعضاء منتديات رواية الأعزاء،
لطالما كان مركز رفع الملفات هو "نقطة الضعف" الأكثر خطورة في أي موقع إلكتروني، وبوابةً محتملة للاختراقات إذا لم يتم تأمينه بالصورة الصحيحة. اليوم، نشارك معكم دراسة حالة تقنية مفصلة حول سكربت "مركز رفع ملفات" خاص، تم بناؤه من الصفر بلغة PHP النقية، معتمداً على ملفات JSON للتخزين بعيداً عن تعقيدات قواعد بيانات SQL.
في هذا الموضوع، لا نستعرض مجرد "سكربت"، بل نستعرض هيكلية أمنية متكاملة صُممت لتجعل من رفع الملفات عملية آمنة تماماً.
1. نظرة عامة وتقنيات البناء
تم برمجة المركز باستخدام لغة PHP النقية دون الاعتماد على أطر عمل، مع استخدام JavaScript النقي للواجهات.
يعتمد النظام بالكامل على ملفات JSON لتخزين البيانات بدلاً من قواعد بيانات SQL، مما يجعله خفيفاً وسريع النقل.
يستخدم آلية "الكتابة الذرية" (Atomic) عند حفظ البيانات، لضمان عدم تلف الملفات.
2. آلية عمل المركز
الرفع: يمر الملف عبر سلسلة فحوصات أمنية قبل تخزينه.
الروابط: يحصل المستخدم على رابط تحميل + "كود حذف خاص" مشفر (128-بت) يستحيل تخمينه، مما يلغي الحاجة لعضويات المستخدمين.
الإدارة: النظام يعتمد على الرفع المجهول، بينما لوحة التحكم مخصصة للإدارة فقط.
3. مميزات الحماية والأمان
تعطيل الأكواد الخبيثة: تعطيل محرك PHP تماماً داخل مجلدات الرفع لمنع تنفيذ أي أكواد (RCE).
الفحص المزدوج للصيغ: قائمة سوداء لأكثر من 80 امتداداً خطراً، وقائمة بيضاء للصيغ المسموحة.
كشف التمويه: قراءة "بصمة الملف" (Magic Bytes) لكشف الملفات المتنكرة حتى لو تغير امتدادها.
تنظيف الصور: إعادة ترميز الصور عبر مكتبة GD لتدمير أي شيفرة مخبأة.
حماية إضافية: جدار حماية (WAF)، نظام تحديد معدل الطلبات (Rate Limiting)، وحماية من تزوير الطلبات (CSRF).
4. لوحة تحكم الإدارة
لوحة مراقبة أمنية تعرض إحصائيات الاختراق والنشاطات الحديثة.
أدوات لعرض وحذف الملفات، والتحكم بإعدادات الرفع والأمان.
سجل أحداث وبلاغات يُنظَّف تلقائياً كل 30 يوماً للحفاظ على الأداء.
نظام حماية للوحة الإدارة يجمّد الدخول بعد 5 محاولات خاطئة.
5. تجربة المستخدم
دعم كامل للغتين العربية (RTL) والإنجليزية (LTR).
تبديل فوري وسلس بين الوضع الليلي والنهاري.
تنبية : في حال وجود مشاكل اخطاء يمكن طرح الموضوع في قسم تطوير المنتديات وباذن الله نقوم بحلها 
صور مرفقه  
رابط  مثال مركز الرفع  
شرح التركيب قم برفع الملف up الى موقعك ومن صفحة your_site.com/up/admin قم بالدخول للوحة الادارة واضبط الاعدادات 
بما يناسبك من اعدادات الصيغ المسموحة وحجم الملفات وتغيير كلمة المرور الخ من اعدادات الموقع 
بيانات الدخول الافتراضية للوحة التحكم هي 
اسم المستخدم : admin
كلمة المرور : admin@123456
🖼️
🖼️ ألبوم الصور 2 صورة
اسامة، ماجد، anwer أعجبهم هذا
📎 المرفقات (1)
📄
up.zip
596.17 KB · ⬇️ 5
⬇️

💬 الردود (8)

صفحة 1 من 2
مدير عام
🕐 07:23 م · منذ 1 شهر
#1
نسخة 2.4.1 — نظام الأعضاء والبريد الإلكتروني
✨ الجديد:
- نظام تسجيل أعضاء كامل مع تأكيد عبر البريد الإلكتروني.
- استعادة كلمة المرور للأعضاء وللمدير عبر رابط يُرسل للبريد.
- صفحة إعدادات البريد (SMTP) في لوحة الإدارة مع زر اختبار الإرسال.
- إرسال رابط الملف تلقائيًا لبريد العضو عند الرفع.
- إضافة حقل البريد الإلكتروني في إدارة المستخدمين.
النسخة قيد المراجعة 
عضو
🕐 03:37 م · منذ 1 شهر
#2
السكربت جيد جدًا يعطيكم العافية
فحصت الملفات ووجدت عدة ثغرات بينها ما هو منخفض الخطورة ومنها ما هو عالي الخطورة 

العالي الخطورة يتمثل في
- ملفات مثل data/admins.json, tokens.json, files.json, images.json موجودة داخل مسار الويب. الحماية تعتمد على .htaccess. إذا كان السيرفر Nginx أو إعداد Apache لا يقرأ .htaccess فهذه الملفات قد تصبح مكشوفة.
- حماية مجلدات data, logs, includes, uploads تعتمد على Apache/LiteSpeed. لو الاستضافة لا تطبّقها، تنكشف بيانات حساسة أو يصبح تنفيذ الملفات أخطر.

وبعض المشاكل الاخرى اللي بلغ عنها الذكاء الاصطناعي
رأيت انكم حاولتم مراعاة الحماية قدر الغمكان وهذا جيد فالكثير ممكن يستخدمون الـ vibe coding لا ينتبهون لهذه التفاصيل
يعطيكم العافة أبدعتم 
مدير عام
🕐 03:41 م · منذ 1 شهر · ✏️ عُدّل منذ 1 شهر بواسطة anwer
#3
هلا فيك @mr nabulsy ونورت المنتدى شكراً لك على المراجعة الدقيقة — هذا بالضبط نوع الملاحظات التي ترفع جودة أي نظام. ملاحظتك في محلّها تماماً، والمبدأ الذي أشرت إليه (الدفاع في العمق) هو جوهر الأمان الصحيح: لا يجب أن تعتمد الحماية على طبقة واحدة قابلة للفشل مثل .htaccess.

بناءً على ملاحظتك، طبّقت التالي:

1. جعلت مسار البيانات مرناً — أضفت آلية تسمح بنقل مجلد data بالكامل خارج جذر الويب (خارج public_html) عبر ملف تهيئة بسيط. عند تفعيلها، تصبح ملفات JSON غير قابلة للوصول عبر المتصفح مهما كان نوع الخادم (Apache أو Nginx أو غيره)، لأنها ببساطة خارج مسار الويب — وهذه أقوى حماية ممكنة.

2. حصّنت الطبقة الحالية — طوّرت .htaccess ليدعم Apache 2.2/2.4، ويعطّل تنفيذ PHP داخل مجلد البيانات، ويحجب كل الامتدادات الحساسة صراحةً. وأضفت web.config لتغطية خوادم IIS.

3. أضفت صفحة فحص أمني ذاتي — لا تكتفي بالافتراض أن الحماية تعمل، بل تختبرها فعلياً: تنشئ ملف بيانات مؤقتاً وتحاول جلبه عبر HTTP، فتكشف يقيناً إن كانت البيانات مكشوفة أو محمية على الخادم الفعلي.

الاختبار الحيّ على الاستضافة الحالية أكّد أن .htaccess مُطبّق فعلاً وأن البيانات محمية — لكن وجود الطبقات الإضافية يضمن الحماية حتى لو تغيّرت بيئة الاستضافة مستقبلاً.

أقدّر لك حقاً هذه المراجعة، وأرحّب بأي ملاحظات أخرى على بقية النقاط التي رصدتها.

عضو
🕐 04:18 م · منذ 1 شهر
#4
موفق صديقي وان شاء الله بتمنالك التوفيق والنجاح
وردًا على رسالتك الخاصة (لا استطيع ارسال رسائل او الرد على الرسائل) المنتدى جميل واكيد يحتاج تطوير فالمنتديات الموجودة منذ عشرين سنة لا زالت تتحدث بشكل دوري
فاللغات والبرامج واليسرفرات كلها تتحدث
ولكن بشكل عام فكرته جيدة وقوي وبالتوفيق ان شاء الله
مدير عام
🕐 04:33 م · منذ 1 شهر
#5
"حياك الله أخي النابلسي، وشهادة أعتز بها جداً والله. كلامك سليم 100% وأوافقك الرأي تماماً؛ التقنية لا تتوقف والأنظمة التي لا تتحدث باستمرار تموت، لذلك التطوير المستمر هو الأساس الذي سأمشي عليه، وبملاحظاتكم وتجاربكم النظام بيصير أقوى وأفضل إن شاء الله.

بخصوص الرسائل الخاصة؛ المفترض أن النظام يعمل بشكل سليم ومفعل. هل تظهر لك رسالة خطأ معينة عند محاولة الرد، أم أن زر الإرسال/الرد غير ظاهر لك؟
ياليت توضح لي المشكلة أو شكل الخطأ اللي يظهر معك عشان أقدر أتتبع الخلل وأصلحه فوراً (قد تكون مشكلة في صلاحيات المجموعات أو تعارض بسيط في الواجهة)، فتجربتكم تهمني جداً في اكتشاف أي أخطاء مخفية.

شكراً لك مرة أخرى على وقتك واهتمامك، وموفق يا رب!"
👋سجّل دخولك أو أنشئ حساباً للمشاركة في النقاش.