Hidden pain
08-20-2011, 08:17 PM
http://cynic.me/wp-content/uploads/2011/03/Sensitive-PHP-errors.png
السلام عليكم و رحمة الله تعالى و بركاته
أرجو ان تكونو في تمام الصحة و العافية :redface:
ف موضوعنا اليوم رح نتكلم عن حماية السكربتات
طبعا نعرف ان الكثير من الاستغلالات تجي بعد ان يجد المخترق رسالة خطأ
ممكن يسحب منها المسار أو اليوزر او يستغل الخطأ نفسه مثلا
ثغرة SQL .. ثغرات ال Remote و هكذا ... المهم موضوعنا مش الثغرات
http://www.websitefactors.co.uk/wp-content/uploads/2011/05/firephp_large.png
http://eligeske.com/wp-content/themes/eligeske/images/category/php.jpg
الفكرة بسيطة و هي تعطيل رسائل الخطأ هكذا حتى لو كان هناك خطأ مش رح يضهر
( لا أتكلم عن كل المخترقين فقط رح تقدر هكذا تمنع عدد كبير منهم )
ممكن نعطلها هكذا
ini_set('display_errors','0');
أو هكذا
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'Off');
لكن أحيانا تكن هاذي الدالة ممنوعة ف السرفر ( نتكلم عن دالة ini_set )
ممكن نستعمل هذه أيضا
error_reporting(0) ;الدالة هذه تعطل اضهار الاخطاء أثناء وقت التشغيل و يمكنكم التعرف عليها أكثر من هنا
www.php.net/manual/en/function.error-reporting.php (http://www.php.net/manual/en/function.error-reporting.php)
أو من هنا لاكتساب معلومات اكثر حول التعامل مع الأخطاء في ال php
www.php.net/manual/en/book.errorfunc.php (http://www.php.net/manual/en/book.errorfunc.php)
ممكن أيضا اضافة هاذا على الهاتكسس
php_value display_errors Offو هكذا تريح روحك من التعديل على السكربتات ف المجلدات الفرعية لو كانت كثيرة
و لو عندك صلاحيات ف السرفر ممكن تعطل اضهار الاخطاء هكذا
تروح على الملف
usr/local/lib/php.ini/
و توقف display_errors
هكذا display_errors = Off
-----------------------------------
-----------------------------------
و هاذي فنكشن لقيتها على احدى المنتديات فكرتها جميلة جدا
تمنع الاخطاء عن الزوار و ف نفس الوقت تحفضها ف ملف لكي يستطيع المدراء مشاهدتها
function error_protect($errno,$errstr,$errfile,$errline){
if(error_reporting()>0){
$file = "error_protect.txt";
file_put_contents($file," ERROR type [$errno] :-> [$errstr] in file :-> $errfile , in line :-> $errline \n", FILE_APPEND | LOCK_EX);
}
}
ثم نناديها هكذا
set_error_handler("error_protect",E_ALL);
و هنا نقول السلام عليكم و رحمة الله تعالى و بركاته
السلام عليكم و رحمة الله تعالى و بركاته
أرجو ان تكونو في تمام الصحة و العافية :redface:
ف موضوعنا اليوم رح نتكلم عن حماية السكربتات
طبعا نعرف ان الكثير من الاستغلالات تجي بعد ان يجد المخترق رسالة خطأ
ممكن يسحب منها المسار أو اليوزر او يستغل الخطأ نفسه مثلا
ثغرة SQL .. ثغرات ال Remote و هكذا ... المهم موضوعنا مش الثغرات
http://www.websitefactors.co.uk/wp-content/uploads/2011/05/firephp_large.png
http://eligeske.com/wp-content/themes/eligeske/images/category/php.jpg
الفكرة بسيطة و هي تعطيل رسائل الخطأ هكذا حتى لو كان هناك خطأ مش رح يضهر
( لا أتكلم عن كل المخترقين فقط رح تقدر هكذا تمنع عدد كبير منهم )
ممكن نعطلها هكذا
ini_set('display_errors','0');
أو هكذا
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'Off');
لكن أحيانا تكن هاذي الدالة ممنوعة ف السرفر ( نتكلم عن دالة ini_set )
ممكن نستعمل هذه أيضا
error_reporting(0) ;الدالة هذه تعطل اضهار الاخطاء أثناء وقت التشغيل و يمكنكم التعرف عليها أكثر من هنا
www.php.net/manual/en/function.error-reporting.php (http://www.php.net/manual/en/function.error-reporting.php)
أو من هنا لاكتساب معلومات اكثر حول التعامل مع الأخطاء في ال php
www.php.net/manual/en/book.errorfunc.php (http://www.php.net/manual/en/book.errorfunc.php)
ممكن أيضا اضافة هاذا على الهاتكسس
php_value display_errors Offو هكذا تريح روحك من التعديل على السكربتات ف المجلدات الفرعية لو كانت كثيرة
و لو عندك صلاحيات ف السرفر ممكن تعطل اضهار الاخطاء هكذا
تروح على الملف
usr/local/lib/php.ini/
و توقف display_errors
هكذا display_errors = Off
-----------------------------------
-----------------------------------
و هاذي فنكشن لقيتها على احدى المنتديات فكرتها جميلة جدا
تمنع الاخطاء عن الزوار و ف نفس الوقت تحفضها ف ملف لكي يستطيع المدراء مشاهدتها
function error_protect($errno,$errstr,$errfile,$errline){
if(error_reporting()>0){
$file = "error_protect.txt";
file_put_contents($file," ERROR type [$errno] :-> [$errstr] in file :-> $errfile , in line :-> $errline \n", FILE_APPEND | LOCK_EX);
}
}
ثم نناديها هكذا
set_error_handler("error_protect",E_ALL);
و هنا نقول السلام عليكم و رحمة الله تعالى و بركاته