SQL Injection
السلام عليكم ورحمة الله وبركاته
يوجد بيننا للاسف اناس يدعون بالامانه والخوف من الحرام ويدعون في سوالف سوفت بالامانه وهم ليسو كذالك يقومون باختراق الموقع لسرقة السكربتات والتعديل عليها وبيعهاا
كم ياسفني ان ارى شخصا بالعمر هذا وهو يتصرف بتصرفات الاطفال
ارجو من الاخوه ممن لديه حلول لحمايه السكربتات من الاختراق ب SQL Injection ان لا يبغل علينا وجزاكم الله الف خير
12-01-2009, 05:45 PM
__________________
برد.........................
12-01-2009, 06:01 PM
عضو فعال
#3
السلام عليكم،
هؤلاء تدخل موقعهم فترى "البسملة" من أوله الى آخره.
وتراه يقول "استعنا بالله" - على ماذا؟؟؟ على سرقة مواقع الآخرين ...
المشكلة هي في العقلية ... العقلية الى الآن ما زالت صبيانية ... ولكن الخبر الجيد هو ان هذه مرحلة "وحتعدي" - لأنها تطور لا بد منه الى ان نصل الى المستوى المطلوب.
بالنسبة لجواب موضوعك - فالمواضيع بسوالف كثيرة وفيها الفائدة ... فقط اعمل بحث صغير.. أو انظر تحت الى المواضيع المتشابهة.
12-01-2009, 06:17 PM
من بعض مميزات منصة عمل Codeigniter هي الحماية الكاملة للمدخلات من GET و POST وحتى COOKIE .. وحسب ماتريده ..
كذلك روابط آمنة تماماً .. لا يسمح بكتابة اي رموز مؤذية في الرابط ... يمكنك ضبطها لتصبح ارقام وحروف فقط ...
دائماً لا تثق في المدخلات الآتية من الزائر .. طبق حمايتك حتى ولو كانت في نقطة صغيرة قد تعتقد انه لن ينتبه إليها احد ..
ارقى التحية ...
12-01-2009, 07:03 PM
عضو فعال
#5
هذه داله استعملها دائماً في مواقعي ...
وظيفتها اضافة "سلاش" و تنقيح المدخلات ...
كود:
function cleanData()
{
define(ENT_QUOTES, 1); ## so that ' => '
foreach($_GET as $k => $v)
{
if (is_array($_GET[$k]))
{
$count_get = count($_GET[$k]);
for ($i=0; $i<$count_get; $i++)
{
if (!get_magic_quotes_gpc()) $_GET[$k][$i] = addslashes(htmlspecialchars($_GET[$k][$i], ENT_QUOTES));
else $_GET[$k][$i] = htmlspecialchars($_GET[$k][$i], ENT_QUOTES);
}
}
else
{
if (!get_magic_quotes_gpc()) $_GET[$k] = addslashes(htmlspecialchars($v, ENT_QUOTES));
else $_GET[$k] = htmlspecialchars($v, ENT_QUOTES);
}
}
foreach($_POST as $k => $v)
{
if (is_array($_POST[$k]))
{
$count_post = count($_POST[$k]);
for ($i=0; $i<$count_post; $i++)
{
if (!get_magic_quotes_gpc()) $_POST[$k][$i] = addslashes(htmlspecialchars($_POST[$k][$i], ENT_QUOTES));
else $_POST[$k][$i] = htmlspecialchars($_POST[$k][$i], ENT_QUOTES);
}
}
else
{
if (!get_magic_quotes_gpc()) $_POST[$k] = addslashes(htmlspecialchars($v, ENT_QUOTES));
else $_POST[$k] = htmlspecialchars($v, ENT_QUOTES);
}
}
foreach($_REQUEST as $k => $v)
{
if (is_array($_REQUEST[$k]))
{
$count_request = count($_REQUEST[$k]);
for ($i=0; $i<$count_request; $i++)
{
if (!get_magic_quotes_gpc()) $_REQUEST[$k][$i] = addslashes(htmlspecialchars($_REQUEST[$k][$i], ENT_QUOTES));
else $_REQUEST[$k][$i] = htmlspecialchars($_REQUEST[$k][$i], ENT_QUOTES);
}
}
else
{
if (!get_magic_quotes_gpc()) $_REQUEST[$k] = addslashes(htmlspecialchars($v, ENT_QUOTES));
else $_REQUEST[$k] = htmlspecialchars($v, ENT_QUOTES);
}
}
}
12-01-2009, 07:14 PM
عضو فعال
#6
أو هذه بشكل أبسط...
كود:
// Prevent any possible XSS attacks via $_GET.
function checker2($check_url){
if ( (eregi("<[^>]*script*\"?[^>]*>", $check_url)) || (eregi("<[^>]*object*\"?[^>]*>", $check_url)) ||
(eregi("<[^>]*iframe*\"?[^>]*>", $check_url)) || (eregi("<[^>]*applet*\"?[^>]*>", $check_url)) ||
(eregi("<[^>]*meta*\"?[^>]*>", $check_url)) || (eregi("<[^>]*style*\"?[^>]*>", $check_url)) ||
(eregi("[^>]*query*\"?[^>]*", $check_url)) || (eregi("[^>]*dump*\"?[^>]*", $check_url)) ||
(eregi("<[^>]*form*\"?[^>]*>", $check_url)) ) {
return 1;
}else
return 0;
}
foreach ($_REQUEST as $check_url) if(checker2($check_url)) die ("طيب! شو بدنا نساوي! بدك تخترق الموقع يعني!!! شوف! يمكن مش اليوم! ارجع بكره!");
foreach ($_POST as $check_url) if(checker2($check_url)) die ("طيب! شو بدنا نساوي! بدك تخترق الموقع يعني!!! شوف! يمكن مش اليوم! ارجع بكره!");
unset($check_url); وأحيانا أضيف اليها بدل ال die
ارسال كل هذه المعلومات الى بريدي ومن بعدها "أميت" العملية.
فيمكنني معرفة من هذا المتطفل.
12-01-2009, 07:17 PM
اقوم بإستخدام هذه الدالة وهي تقوم فقط بتنظيف المدخل .. ولا تقوم بإخبارك فيما اذا كان المدخل يحوي اكواد ضارة ام لا ...
كود PHP:
function strip_html_tags ( $text ) { $text = preg_replace ( array( // Remove invisible content '@<head[^>]*?>.*?</head>@siu' , '@<style[^>]*?>.*?</style>@siu' , '@<script[^>]*?.*?</script>@siu' , '@<object[^>]*?.*?</object>@siu' , '@<embed[^>]*?.*?</embed>@siu' , '@<applet[^>]*?.*?</applet>@siu' , '@<noframes[^>]*?.*?</noframes>@siu' , '@<noscript[^>]*?.*?</noscript>@siu' , '@<noembed[^>]*?.*?</noembed>@siu' , // Add line breaks before and after blocks '@</?((address)|(blockquote)|(center)|(del))@iu' , '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu' , '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu' , '@</?((table)|(th)|(td)|(caption))@iu' , '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu' , '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu' , '@</?((frameset)|(frame)|(iframe))@iu' , ), array( ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , "\n\$0" , "\n\$0" , "\n\$0" , "\n\$0" , "\n\$0" , "\n\$0" , "\n\$0" , "\n\$0" , ), $text ); // ثم بتحديد الوسوم المسموح بها في المدخل الثاني return strip_tags ( $text , "<br /><br><p>" ); }
12-01-2009, 08:03 PM
عزيزي
أفضل طريقة للحماية من ثغرات الـ sql injection هي باستخدام كلاسات تقوم بعملية تجهيز الاستعلام قبل تنفيذه..
وطبعا ان sqlite تدعم ذلك.. وكما ان اغلب المطورين يتجهون الى استخدام كلاس PDO للتعامل مع الاستعلامات..
ونظرا لأن الأغلبيه يستخدمون الاستعلامات العاديه دون ماذكرته.. فقد قمت ببرمجة كلاس للحماية من اهم الثغرات ومنها ثغرة الـ sql injection..
لتحميل الكلاس
http://www.swalif.net/softs/attachme...1&d=1229649474
ولمعرفة المزيد حول الكلاس ودوال الحماية وطرق استخدامه يرجى مراجعة
http://www.swalif.net/softs/swalif45/softs247745/
ملاحظة: تجاهل التعديلات المطلوب عملها.. حيث ان الوصلة التي ذكرتها تحمل آخر اصدار منه
بالتوفيق
__________________
مملكة الموت
=======================
100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة
13-01-2009, 03:14 AM
اشكركم اخواني على هذه المعلومات التي تفيد كل عربي
واشكركم على مشاركتكم للموضوع واخذه بمحمل الجديه
وممن لديه اضافه فالموضوع للافادة الاخوه العرب فليتفضل
14-01-2009, 10:58 AM
عضو فعال
#10
وحداني -
توجد لي ملاحظة أصبحت أكتبها بشكل دائم بنهاية كل موضوع.
نحن اجتهدنا لنفيدك ونفيد غيرك. نتأمل ممن استفاد ورأى معلومة بمكان آخر - أن يرجع الى هنا ويكتبها.
مثل ما اخذت - ادي.
14-01-2009, 11:42 AM
فعلاً أخي أنا أحد ضحايا SQL Injection
هم مجرد أطفال بلا عقول يدمرون جهد الأخرين فقط كــ تسلية
__________________ Linux For Server | Mac For Graphic | Windows For ٍٍٍٍٍSolitaire
14-01-2009, 11:57 AM
مجود الحفر
شكرا اخي لدخولك للموضوع بقصد المساعده
لكم الراوبط لا تعمل
massalha
اخي الكريم بالفعل هما كما قلت الله يهديهم ويهدينا جميعا ان شاء الله
بخوص معلومات ابشر اخي الكريم وملاحظتك على عيني ورأسي
almosmm
الف شكر على الدخول والمساعده
DSQ8.com
لك مني جزيل الشكر اخي الكريم
جزاك الله الف خيرا
لكن لدي سؤال هل الكلاس يمنع منعا باتا حقن sql ؟
او انه يمنع اغلب ثغرات sql ؟
15-01-2009, 05:59 PM
إقتباس:
المشاركة الأصلية بواسطة
aladawi فعلاً أخي أنا أحد ضحايا SQL Injection
هم مجرد أطفال بلا عقول يدمرون جهد الأخرين فقط كــ تسلية
الله يكون بعونا اخي الكريم
ندعي لهم ولنا بالهدايه اخي الكريم
فهم لا يعلمون بماذا يحصل لنا من ناتج افعالهم
شكرا على مرورك للموضوع
15-01-2009, 06:02 PM
لا يوجد شيء كامل إلا وجهه عز وجل..
ولكني استطيع القول بأنه بإذن الله سيحميك من اخطارها.. اذا ما تم استعماله بالشكل الصحيح..
كما اني انتظر تجارب الاخوة الاعضاء فهو مازال تحت الاختبار..
بالتوفيق
__________________
مملكة الموت
=======================
100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة
15-01-2009, 08:46 PM
إقتباس:
المشاركة الأصلية بواسطة
DSQ8.com لا يوجد شيء كامل إلا وجهه عز وجل..
ولكني استطيع القول بأنه بإذن الله سيحميك من اخطارها.. اذا ما تم استعماله بالشكل الصحيح..
كما اني انتظر تجارب الاخوة الاعضاء فهو مازال تحت الاختبار..
بالتوفيق
ان شاء الله يكون يكون له دور فعال
لك مني جزيل الشكر
الله يعطيك العافيه والصحه
18-01-2009, 12:30 PM