المرجو من الاخوان شرح مختلف طرق الحماية في php & mysql
ولكم جزيل الشكر :huh:
المرجو من الاخوان شرح مختلف طرق الحماية في php & mysql
ولكم جزيل الشكر :huh:
السلام عليكم و رحمة الله
الإجابة المختصرة على هذا السؤال لا يمكن ذلك 100%، الإجابة المفصلة له لايمكن ذلك أنه كل ما كبر تطبيقك زاد إحتمال لإصابته بالثغرات، لأنه عادة المبرمج يهمل هذا الجانب(في حالة المبتدئين) أو لا ينتبه له. خذ مثالا على سكربتات كبيرة مثل Joomla, VB و غيرها، رغم أنه يوجد لديهم فريق أمني يتحقق من الثغرات إلا أنه دائما نسمع بوجود ثغرة في مثل هذه السكريبتات.
اقتباسالمرجو من الاخوان شرح مختلف طرق الحماية في php & mysql
إن كانت هذه بدايتك في كتابة تطبيقات PHP&MySQL فلا تزعج نفسك بتعلم كل شيء في مرة واحدة، بل إبدأ بالتدريج XSS، SQL Injection و هكذا، راجع قسم الحماية و الأمن لمعلومات أكثر أو هذا الموقع فهو ما تريد.
''اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل بلية''
'اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء منهم و الأموات'
www.it-scoop.com
أعتقد أن أفضل طريقة هي بمعرفة الهجمات التي تهدد تطبيقات الويب، ومن ثم يمكن للمبرمج أن يفكر بطريقة الحماية منها.
كما ذكر أخي SIFE فمن أكثر الهجمات التي تتعرض لها المواقع هي XSS و SQL injection والأخطر بينهما هي طبعاً SQL injection خاصة في حال كون صلاحية المستخدم المتصل بالقاعدة عالية (root؟ File_privilege'd؟).
OWASP لديها قائمة بأخطر 10 تهديدات أمنية ومن بينها التي تهدد مواقع الويب، لكن هناك بعض الانتقادات لقائمة OWASP واتهامات بأنها "تقليد أعمى" لقائمة SANS.
الفكرة بشكل عام تتمحور حول التالي في تطبيقات الويب:
[*]هجمات CSRF و Clickjacking تعتمد على فكرة Confused Deputy
هذه my 2 cents فيما يستطيع عقلي استذكاره الآن، رأيي المختصر.. start backtracking، اعرف التهديدات وافهمها وابحث عن الحلول، لأن الحل برمجياً سهل مادمت فهمت نوع الهجوم وكيفية استغلاله.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
سؤال مهم لنا نحن المبتدئين
الا يوجد فنكشن تقي من هذه الهجمات؟ يعني ناخذ ادخالات المستخدم نرسلها للفنكشن لتنقيها من كل الادخالات الضارة
واذا وجدت هل تختلف باختلاف اللغة مع العربي مثلاً او اختلاف الترميز؟
اخي العزيز الغالي ..
بالنسبة لإغلاق الثغرات ..أخي الغالي
هذا الكود أستخدمه لمنع ثغرات اإيميل
function rems ($input){
if (get_magic_qoute_gpc()){
$input=stripslashes($input);
}
return mysql_real_escape_string($input);
}أخي الغالي إذا كانت القيمة التي يدخلها المستخدم ينبغي أن تكون رقما // يجب أن تسبقها بهذا الدالة
mysql_real_escape_string((int)$hala);
كيف تمنع نفسك من أن يقوم المستخدم من أدخال أكواد html وهذه الطريقة تسمى xss
1.
هذه تظهر القيمة كما هي
htmlentities($var,ENT_COMPOAT,'UTF-8');
2.
أو هذه تحذف الأوسمة (tags).
strip_tags($var);
3.
امنع المستخدم من ادخال أي سلاشات عن طريق هذا الكود
stripslashes($var);
الأن أريد أن أمن ع المستخدم من أقحام أوامر sql في شريط العنوان أو في التكست بوكس
عن طريق الإستعلام بهذا الطريقة
$query=sprintf("SELECT * FROM table WHERE var='%s' AND var1=$s ",mysql_real_escape_string($var),mysql_real_escape_string($var2));
$query=mysql_query($query);إذا كنت تريد أن تتعامل مع المجلدات .. هذه من أخطر الأمور التي ممكن أن تستخدم عزيزي ..
عليك أن تقوم بوضع الملفات الموجودة في المجلد التي تريد إدراج منه ماتريد لنفرض صور مثلا . تضعها في مصفوفة ..وثم تفحص وجود المدخل في المصفوفة وذلك حسب التالي ..
$dir = "page";
$files=scandir('$dir');
unset($files[0],$files[1]);
if(in_array($_GET['page'], $files)){
//the code
}لحماية الجلسات نضع هذا الكود في رأس الصفحة .
ini_set('session.cookie.httponly',true);
session_start();
if($_SESSION['last_ip']===false){
$_SESSION['last_ip']=$_SERVER['REMOTE_ADDR'];
}
if($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR'];){
session_unset();
session_destroy();
}تم تعديل هذه المشاركة بواسطة La Martir في 30 أغسطس 2011 في 01:02
Nothing Secure %100 even NASA :)
Life is not the amount of breaths you take, it's the moments that take your breath away
أخي العزيز الغالي .. فؤاد عبد الرازق ..
أنا لم أقل بانه يوجد موقع محمي مية بالمية ...
ولكن لنصعب الأمر على المخترقين وتكون مواقعنا كثر حمياة حتى لو بنسبة 80 بالمئة ..
أشكرك
La Martir كتب:أخي العزيز الغالي .. فؤاد عبد الرازق ..
أنا لم أقل بانه يوجد موقع محمي مية بالمية ...
ولكن لنصعب الأمر على المخترقين وتكون مواقعنا كثر حمياة حتى لو بنسبة 80 بالمئة ..
أشكرك
اكيد صح كلامك سليم انا بس بحب اعمل مدخلات تولع المواضيع شوية علشان الناس نايمة و العيد بقى و انت عارف كل سنة و انتوا طيبين
Life is not the amount of breaths you take, it's the moments that take your breath away
اي واللع معك حق نايم بالعيد ربي يسعدلي قلبك يااراب
لامارتير
استخدم PHPIDS...
لكني لم إجربه لكني سمعت عنه...
http://www.isecur1ty.org/articles/web-security/127-php-ids-intrusion-detection-system.html
أخي الكريم La Martir
ممكن أن تشرح فكرة هذا الكود؟
ini_set('session.cookie.httponly',true);
session_start();
if($_SESSION['last_ip']===false){
$_SESSION['last_ip']=$_SERVER['REMOTE_ADDR'];
}
if($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR'];){
session_unset();
session_destroy();
}ini_set('session.cookie.httponly',true);الجملة ديه علشان httponly تشتغل و httponly ديه بتساعد فى الحماية من XSS Attacks و طريق عملها بسيطة جدا
ان مفيش اى Client Side Script يقدر يوصل لــ Cookies المعرفة داخل الــ Browser و على فكرة لازم يكون الــ Browser يدعم الــ httponly علشان تشتغل
if($_SESSION['last_ip']===false){
$_SESSION['last_ip']=$_SERVER['REMOTE_ADDR'];
}كود بسيط ولو انه غريب بالنسبالى شوية بالنسبالى
بس الكود بيقول انه فى حال ان $_SESSION['last_ip'] غير معرفة اذن قم بتسجيل الــ $_SESSION['last_ip'] و سجلها بالقيمة $_SERVER['REMOTE_ADDR']
و القيمة $_SERVER['REMOTE_ADDR'] هى IP المستخدم
if($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR'];){
session_unset();
session_destroy();
}فى حال ان الــ $_SESSION['last_ip'] لا تساوي IP المستخدم
دمر الجلسة او الــ Session
و على الكود يشتغل لازم تشيل الــ Semicolon اللى بين الاقواس ديه
Life is not the amount of breaths you take, it's the moments that take your breath away
شكرا لك
+1