المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تحسين قوانين المود سكيورتي لتقليل الضغط على الخادم server



said
11-02-2013, بتوقيت غرينيتش 02:23 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
http://1.bp.blogspot.com/-5Ju-oc0YqZw/UH6JTuNzS4I/AAAAAAAAGNw/92Oa8I4_xFY/s1600/mod_Security.JPG
مرحبا, في الفترة الماضية كنت اعمل على اعداد قوانين للمود سيكورتي, وبعد الانتهاء منها بدأت بمرحلة الاختبار والتنقيح. وفي اثناء تنفيذ بعض الاختبارات الصعبة لاحظت ان الطلب او ال Request يتأخر او يعتبر من الطلبات الثقيلة على الـ Apache.


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

مثال اول: لنفرض اننا لدينا القوانين التالية

رمز PHP:

<code style="white-space:nowrap"> <code> START

SecRule REQUEST_URI "\phpshell"
SecRule REQUEST_URI "\commander\.php\?&cmd"
SecRule REQUEST_URI "\r00r\.php\?&cmd=chmod"
SecRule REQUEST_URI "\lolshell\.php\?&cmd=chown"
SecRule REQUEST_URI "\phpshell\.php\?&cmd=ls&d"
SecRule REQUEST_URI "\shell\.php\?&cmd=sql"
SecRule REQUEST_URI "\r00r\.php\?&act=chmod"
SecRule REQUEST_URI "\lolshell\.php\?&act=chown"
SecRule REQUEST_URI "\phpshell\.php\?&act=ls&d"
SecRule REQUEST_URI "\shell\.php\?&act=sql"
SecRule REQUEST_URI "\r00r\.php\?&command=chmod"
SecRule REQUEST_URI "\lolshell\.php\?&command=chown"
SecRule REQUEST_URI "\phpshell\.php\?&command=ls&d"
SecRule REQUEST_URI "\shell\.php\?&command=sql
SecRule REQUEST_URI "\shell11234\.php\?&act"
SecRule REQUEST_URI "\rootshell\.php\?&command"
SecRule ARGS "\shell"
SecRule REQUEST_LINE "/niceshell\.txt"

END
</code> </code>

الأن لو جمعنا القوانين هذه سوف يكون لدينا 23 قانون. السؤال هنا, كيف نقوم بتحسينا ؟ الجواب هو عن طريق دمج ماسبق بداخل قانون واحد. كتالي

بعد التحسين:

رمز PHP:

<code style="white-space:nowrap"> <code> START

SecRule REQUEST_URI|ARGS|REQUEST_LINE "/&#91;A-Za-z0-9&#93;\.(txt|php)\?&(cmd|command|act)=(chmod|chown|ls&d|sql&)"

END
</code> </code>

مثل ماتلاحظون تم دمج 23 قانون بداخل قانون واحد بإستخدام الريجيكس
ولو اردنا إضافة تفاعل خاص مع القانون هذا, التفاعل يعني Action خاص بالقانون يتم تنفيذة في حالة تطابق ال REQUEST مع ال RULE المعين.

المثال الأخير: بعد إضافة التفاعل الخاص

رمز PHP:

<code style="white-space:nowrap"> <code> START




SecRule REQUEST_URI|ARGS|REQUEST_LINE "/&#91;A-Za-z0-9&#93;\.(txt|php)\?&(cmd|command|act)=(chmod|chown|ls&d|sql&)" \
"deny,log,auditlog,msg:'Bad Request',id:'000000',severity:'2'"

END
</code> </code>

وبهذا نكون اختصارنا 23 قانون بداخل قانون واحد مع إضافة تفاعل خاص مع القانون السابق.
وعند تنفيذ طلب معين سوف يمر على قانون واحد فقط بدل من ان يمر في 23 قاون

قد تكون كفكرة سهلة جداً. ولكن تنفيذها صعب جداً ويحتاج لإتقان التعامل مع regular expression في كتابة الأكواد.
ويجب ان تكون حذر جداً اثناء كتابة القوانين بهذا الشكل لأن اي خطأ قد يسبب مشاكل كثيرة ومن ضمنها توقف apache عن العمل. ولكن استخدام الاساليب هذه سوف تعطيك نتائج جيدة.

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






https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى