الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهي الدوال التي يمكن أن تضرب السيرفر

بدأه بسام العيساوي في 2 سبتمبر 2009 · 10 رد · 1,633 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

بعد إن شاء دورة تصميم موقع من الصفر ﻻحظت أن كثيرين لايمكنهم تجربة العمل على السيرفر المحلي ربما لأنه يفتقد إلى بعض المهام أو أنهم ﻻيتمتعون في التطبيق لأن مايفعلونه سيضيع دون أن يراه أحد ومن أهم الأمور المشجعه على التدريب والتعليم هي المجموعه فإذا كنت مع أصحاب بنفس مواهبك ستتميز ويتميز أصحابك

لذلك فكرت في إعطاء مساحات مجانيه تحتوي على المجله التي تم عملها في الدوره ويمكن لأي شخص الحصول على هذه المساحة وتجربة تغيير الكود أو تطوير في المجله كما يمكنه عمل نسخة قابله للتحميل منها , ولكن وقفت على أمر مهم وهو السيرفر الذي سيحوي هذه المساحات سيكون في خطر وذلك لوجود دوال يمكن أن تضرب السيرفر مثل دالة

exec unlink , mail

وغيرها من الدوال

ولو قمت بدراسة كل كود سيقوم برفعه أحد الأعضاء سيكون الأمر مملا للعضو فهو متحمس ليرى النتائج فورا

بعد هذه المقدمة الطويله , أريد قائمة للدوال التي يمكن أن تضر في مثل هذه الحاله وأفكار ... أرجوكم أفكار لطرق بديله إن وجدت

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#2

الهدف من منع الدوال انك تمنع المبتدئين من الاضرار بالسيرفر عن طريق الخطأ... مثلا فكره ممتازه انك تمنع remote files inclusion .. تضع قواعد البيانات على سيرفر مستقل و تسمح لكل موقع بعدد قليل جدا من concurrent connections .. و حاول تعمل isolation قدر الامكان بحيث مهما يحدث الضرر يكون محصور باقل عدد من الحسابات المجانيه... و طبعا backups قدر الامكان

فكره اخيره ... قلل قدر الامكان ال maximum timeouts

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#3

أشكرك أخي ريان ...

سأقوم بعمل صفحة تتبع الكود المرسل فلن يكون هناك إف تي بي يتم رفع ملفات البي أتش بي إليه مباشرة ولكن من خلال محرر أكواد يقوم بعمل تعديل على الكود أو إضافة صفحة جديده وعند إرسال الكود أريد أن أقوم بعمل فحص للدوال المستخدمه فإذا وجدت دوال معيه يتم رفض الملف , ولكن هناك مواقع تقدم مثل هذه الخدمه مع إف تي بي فهل لديك فكرة عن هذا الأمر ؟ أعرف أنها تختص بالسيرفرات ولكن ربما تكون بإعدادات خاصه في ملف

php.ini

ولماذا فكرة قواعد البيانات على سيرفر مستقل ؟ ولو أنها عندي على سيرفر مستقل أصلا :) ولكن ماهية عملها من الناحية الأمنيه؟

بالنسبه للحسابات رح تكون نطاق فرعي ... ومفكر يكون الحساب الرئيسي على شيرد سيرفر على أساس تكون المساحة غير محدوده بالإضافة إلى الباندويث فشو رايك ؟

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#4

لا حاجه لهم فى ال Curl ايضا وفى ال Sockets طبعا

وبصفه عامه استضافات مثل freehostia منعت اى accessing لل external resource

ال timeout فعلا لا يجب ان يزيد كفايه 30 او اقل

ايضا حجم ال upload كملف ,,

#5

أشكرك أخي ASDen

لقد بدأت العمل على هذا الموقع , وسأقوم بوضعه في المنتدى وربما في مجموعة أقسام مثل قسم الأمن والحمايه بحيث يتم التأكد من خلوه من الثغرات لحد ما

فكرة الباك أب مهمه جدا سأعتمد باك أب يومي , ومن ناحية حجم الملف فكما ذكرت لن يكون هناك إف تي بي وإنما واجه يتم برمجتها ويتم تخزين الملفات في قاعدة البيانات مباشرة بعد التأكد من خلوها من أي سكريبتات والتأكد من أنها ملفات معينه كصور وملفات صوت وفيديو وبي دي أف وورد وغيرها من الملفات , هناك دوال أود تركها ولكنها خطيرة مثل

exec

فهذه الدالة بها الكثير الفائدة والتي لايمكن التعامل معها من خلال سيرفر محلي على ويندوز لآنها تعتمد على برامج لينكس لذلك أفكر في عمل متتبع يفحص الكود بشكل برمجي ولا يبحث عن دوال معينه أو كلمات معينه إنما يبحث عن هدف الكود بطريقة ما ... الأمر صعب جدا خصوصا أن هناك إمكانيه تنفيذ ملفات مشفرة وبذلك لن يستطيع المتتبع من معرفة محتوى الكود ...

curl والسوكيت وغيرها من الدوال التي تعمل نفس هذا العمل أعتقد كما قلت أخي ASDen لا داعي لها , بالنسبه لل time out سيكون مدة خمس ثواني أو أقل فعملية تنفيذ صفحة لا يحتاج إلى أكثر من ثانيه في معظم الأحيان وهذه فكرة جيده ,

لدي بعض الأسئله ...

الأخ ريان أشار إلى concurrent connections فكيف يتم ذلك ؟ وهل يمكن منع تنفيذ صفحة أكثر من مرة خلال عشرة ثوان مثلا؟

ماهي امكانية منع مستخدم من حذف حساب أو ملفات في مجلد أعلى منه

مثلا صفحة المستخدم أو حسابه كامل على مجلد

/root/user1

ماهي إمكانيه منعه من إستعراض الملفات في الروت أو حذف ملفات منها ؟ كما يحدث في cpanel عند إنشاء عدة مواقع , تكون المواقع الأخرى في أمان وهي فعليا في نفس المجلد!

إذا حلت مشكله إمكانيه حذف ملفات في مجلد أعلى ربما تكون باقي الأمور بسيطه يعني فقط إعدادت وتحديد في المهام.

خصوصا أنني جربت إستضافات قويه فوجدت بعضها لا يقم بحذف حسابك إذا قمت بعمل جهد على السيرفر وإنما يقوم بتوقيفه لمدة خمس دقائق وبعدها يعود الموقع للعمل :) فإذا كان هناك مخربين فلن يؤثروا كثيرا خصوصا أن هناك إمكانيه من معرفة الصفحة التي أحدثت المشكله والدالة التي قامت بهذه المشكله وبذلك يتم حذف الحساب والتعصب ضد هذه الداله :)

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#6

بالنسبه للدوال فكرتك غير مناسبه فيه طرق كثير للتلاعب بالاسلوب هذا، مااعتقد فيه داعي اخوض فيها...

الحل الافضل تمنعها من php.ini بكل سهوله.

بالنسبه ل concurrent connections و مسأله حمايه ملفات الاعضاء من بعض كل هذا ضمن اعدادات السيرفر (apache) و ربما اعدادات Linux

معلومات سطحيه في المجال هذا... الافضل اترك الموضوع لشخص يفهم فيه اكثر :)

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#7

تستطيع من ال Apache ان تحدد اقصى عدد من ال concurrent connections

وايضا من خلال ال MySQL تحدد اقصى عدد هى تستقبله من ال Concurrent connections

هذا مهم جدا لتحجيم اللود

وايضا تستطيع تحديد اقصى حجم memory تاخذه ال php process

بالنسبه لملفات الاعضاء فهذه تبع الصلاحيات من ال Linux (غير متأكد من امكانيه ظبطها من ال Virtual server config in apache )

بالمناسبه هل تنوى الاعتماد على شىء مثل ال Cpanel او اى بديل مجانى ,, ام كله يدوى (صعب وغير عملى )

#8
اقتباس
بالنسبه للدوال فكرتك غير مناسبه فيه طرق كثير للتلاعب بالاسلوب هذا

هذا ما أعتقده أيضا

اقتباس
تستطيع من ال Apache ان تحدد اقصى عدد من ال concurrent connections

وايضا من خلال ال MySQL تحدد اقصى عدد هى تستقبله من ال Concurrent connections

هذا مهم جدا لتحجيم اللود

وايضا تستطيع تحديد اقصى حجم memory تاخذه ال php process

سأقوم بالبحث عن كيفية عمل ذلك إن شاء الله

اقتباس
بالمناسبه هل تنوى الاعتماد على شىء مثل ال Cpanel او اى بديل مجانى ,, ام كله يدوى (صعب وغير عملى )

السي بانيل تقدما خدمات كثيرة وأنا أريد تقديم خدمات بسيطه مثل

البريد الإلكتروني بحيث يمكنه إنشاء حساب بريد وهذا يمكن عمله (عملته سابقا)

قاعدة البيانات ستكون واحده فقط ويمكن حذف أو إنشاء جداول بكل سهوله من خلال السيكول (حتى يمكن عمل محرر بسيط من خلاله يمكن إنشاء جداول وحذفها)

file manager : وهذا سأبحث عن كود جاهز له أو أقوم بعمل واحد بسيط وأعتقد أن سكريبتات كثيره مفتوحة المصدر تقدم خدمة مدير الملفات

هل هناك خدمات أخرى مهمه غير هذه ؟

سؤال أعتقد حله من خلال ملف إعدادات بي أتش بي php.ini ولكني أريد الحل واضح بعد إذنكم ... كيف يمكن جعل ملفات البي أتش بي لايتم تنفيذها إذا كان إمتداد الملف ليس

php

وكيف يمكن جعل مجلد غير قابل لتنفيذ أي كود فقط يكون لإستقبال الملفات وإذا وضع فيه ملف تنفيذي

php

يتم عرض كود البي أتش بي وكأنه ملف نصي ؟

وجدت كود لملف

.htaccess

ولكنه لم يعمل معي !!

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#9
اقتباس
وايضا من خلال ال MySQL تحدد اقصى عدد هى تستقبله من ال Concurrent connections

من خلال ملف huge.cnf فى MySQL بامكانك تعديل قيمة الباراميتر max_connections كا تشاء للتحكم فى عدد اللاتصالات المتزامنة Concurrent Connections القيمة الافتراضية لهذا الباراميتر = 100

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 3 سبتمبر 2009 في 14:46

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#10
اقتباس
ماهي امكانية منع مستخدم من حذف حساب أو ملفات في مجلد أعلى منه

هذه تبقى مشكلة تصريحات فمثلا إجعل جميع المجلدات و الملفات هي ملك لل root .

chown 700 -R /

هذا الأمر سينسب جميع الملفات و المجلدات للمستخدم R ، root معناه recursion .

بعدها أعطي كل مجلد عضو تصريحا بالكتابة و القراءة و التنفيذ لنفسه و root فقط :

اقتباس
chown 770 -R /home/user

روابط مفيدة :

http://www.comptechdoc.org/os/linux/usersg...x_ugfilesp.html

http://www.tuxfiles.org/linuxhelp/filepermissions.html

اقتباس
سؤال أعتقد حله من خلال ملف إعدادات بي أتش بي php.ini ولكني أريد الحل واضح بعد إذنكم ... كيف يمكن جعل ملفات البي أتش بي لايتم تنفيذها إذا كان إمتداد الملف ليس

php

وكيف يمكن جعل مجلد غير قابل لتنفيذ أي كود فقط يكون لإستقبال الملفات وإذا وضع فيه ملف تنفيذي

php

يتم عرض كود البي أتش بي وكأنه ملف نصي ؟

هذه توجد في ملف htaccess لكني لا أتذكرها .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#11

أخي طارق إبراهيم أشكرك على إجابتك الواضحه

أخي سيف أعتقد أن الأمر كله يعتمد على الصلاحيات وأوامر اللينكس بشكل كامل , ربما لو أقوم باستشارة أحد مديري السيرفرات سيكون جوابه شافيا على أساس أن هناك ملفات لا يمكن عملها فقط للروت لآن الأمر سيصبح حساس جدا إذا قمت بإستخدام باسوورد الروت في الكود ليتم عمل الإعدادت , فهذا يجعل السيرفر معرض للهجوم بأي لحظه .

بالنسبه لــ

اقتباس
هذه توجد في ملف htaccess لكني لا أتذكرها .

لقد ذكرت أنني وجدت الكود ولكنه لم يعمل , أظن أن الأمر له علاقة بملف الإعدادت البي أتش بي !!

على كل أشكر جميع من شارك فقد تمكنت من جمع ملومات جيده , سأبدأ في الأمر حبه حبه :) مشان أكون على بر الامان ..

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

مواضيع مشابهة