• 0
Shadi Habbal

ما معنى SQL injection

سؤال

بسم الله الرحمن الرحيم،

1/ ما معنى SQL injection

  • إدخال (حقن) تعليمات SQL في قاعدة بيانات موقع ما من خلال ضعف أمني في برمجة الموقع بأخذ معلومات أو قيم مرتجعة من قبل المستخدم من الصفحة بدون فحصها بحثاً عن الرموز الممنوعة والتي قد تسبب خللاً في الجمل الخاصة بـ SQL عندما يتم إدخال هذه القيم في الحقول المخصصة في قاعدة البيانات.
  • SQL injection يمكن أن يحدث في أي مكان يقوم باسترجاع بيانات من المستخدم، أو يعتمد على قيم معينة يعتبرها المبرمج ثابتة في الصفحة، بينما في حقيقة الأمر يكون المهاجم قد قام بتبديلها بقيم أخرى معتمداً على أن المبرمج قام بإغفال هذه النقطة من خلال حفظ الصفحة لديه وإعادة تشكيلها مرة أخرى reconstruct بقيم مختلفة عما وضعه المبرمج، مثال: استخدام قائمة drop down لعرض مجموعة من الألوان والطلب من المستخدم اختيار لونه المفضل، يمكن للمهاجم حفظ الصفحة وإعادة كتابة شئ مختلف بدلاً من القيم بنفس الـ id المحدد للعنصر.
  • SQL injection يتنوع بين السهل الاستغلال وبين المعقّد الاستغلال.
  • يمكن إعطاء المثال البسيط التالي: جملة SQL في صفحة login.php تقوم باختيار عضوية من جدول بناء على وجود اسم مستخدم في هذا الجدول وتطابق كلمة المرور مع الحقل المناسب
    SELECT id FROM users WHERE name='$name' AND pass='$pass';

وفي الصفحة التي تظهر للمستخدم يوجد نموذج FORM بالشكل التالي:

<form method="post" action="login.php">
<input type="text" name="name">
<input type="password" name="pass">
<input type="submit" value="login">
</form>

عند النقر على زر Submit فإن النموذج يقوم بإرسال قيم الحقول name و pass إلى الصفحة login.php التي تحوي على جملة SQL السابقة.

لو قام المهاجم بإدخال النص التالي كاسم مستخدم (نفرض وجوده في الجدول):

admin

وقام بإدخال كلمة مرور بالشكل:

' or 1=1;--

فما يحصل هو أن القيم أعلاه سيتم إضافتها ضمن جملة SQL كقيم متغيرات لتصبح الجملة أثناء التنفيذ بالشكل التالي:

SELECT id FROM users WHERE name='admin' AND pass='' OR 1=1;--';

لاحظ كيف أنه يتم نفي احتمال كون كلمة السر فارغة من خلال استخدام الشرط المنطقي OR

وتبديله بعبارة محققة دوماً، 1=1

من ثم إدخال ; والتي تعني نهاية الجملة الشرطية

من ثم -- التي تعني اعتبار كل ما يليها كتعليق لا يتم أخذه بعين الاعتبار أثناء التنفيذ (لتجنب الأخطاء التي قد تظهر في جملة SQL معقدة أكثر)

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

يمكن استغلال SQL injection للحصول على صلاحيات، لسرقة جداول كاملة قد تحوي على بيانات شخصية أو بيانات هامة وسرّية (بطاقات الائتمان في موقع تجاري) والعديد من الأمور الأخرى.

<li>بما أن جمل SQL لا تظهر للمهاجم وتختلف من موقع لآخر فيكون هناك عمل ينتظر المهاجم في كتابة استغلالات أكثر تعقيداً من المثال أعلاه للحصول على صلاحيات أو بيانات ما من جدول معين، فمجرد عدم الحصول على اسم الجدول يمنعه من الحصول على المعلومات الموجوده بداخله لذلك يلجئ المهاجم إلى إدخال استغلالات خاطئة عند التنفيذ تحدث خطأ معالجة تجعل السيرفر يقوم بتلفّظ معلومات لمحاولة توضيح الخطأ وسبب حصوله، غالباً ما تحوي هذه الأخطاء على معلومات مهمة للمهاجم كأن يظهر الخطأ التالي:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
/process_login.asp, line 35

في استغلال خاطئ ( ' having 1=1-- ) يمكن المهاجم من معرفة الجدول والـ column الذي يعمل فيه ومعلومات أخرى أيضاً مثل GROUP BY التي قد تساهم في توسعة دائرة المعرفة الخاصة به!

blind SQL injection هو أحد الأنواع عندما يقوم مدير الموقع بتعطيل إظهار معلومات نتيجة استعلامات خاطئة، فلا يظهر شئ للمهاجم، حينها يكون عليه أن يقوم بعمل أكثر وربما يكون من المستحيل بالنسبة له الحصول على نتيجة عندما تفشل محاولاته جميعها في إعطائه ما يريد.

تم تعديل بواسطه Xacker
تصحيح عرض كود
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

37 إجابة على هذا السؤال .

  • 0

لاحظ يا X لو كتب الإستعلام بهذا الشكل الغريب :


$name=$_POST['user'];
$pass =$_POST['passwd'];

$qu = "SELECT * FROM users WHERE name='".$name."'" ;

$member = mysql_fetch_array(mysql_query($qu));

if ($member AND $member['password'] == $pass )
{
... etc

ستصبح مشكلة أمام ال injection ! هل يمكن الإلتفاف عليها ؟ طبعا لايوجد إختلاف في الأداء فيما لو كان الإستعلام مجرد سطر واحد :

SELECT id FROM users WHERE name='$name' AND pass='$pass';

تم تعديل بواسطه Xacker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أنت أدرى مني بـ SQL

المشكلة واضحة

لكن كيفما كان شكل الاستعلام، ألا تجد أن المشكلة في النهاية هي في ما يتضمنه اسم المستخدم وكلمة المرور وليس فعلاً ما يكون شكل الاستعلام؟

بمعنى لو قمت بفحص المتغيرات $name و $pass بعد أن تجلبها من الاستعلام وقمت بمسح كل الرموز الممنوعة فيها ثم تنفذ بقية الاستعلامات ألا يحل هذا المشكلة أم هناك شئ تلمّح له غفل عني؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يا X قصدت أن إنتبه للتفرع الشرطي هنا :

if ($member AND $member['password'] == $pass )

لو حاولت أن تقوم بعمل Injection بأي طريقة ولأي password لايمكن تخطي هذا الكود , والسبب أن المقارنة هنا تتم على مستوى If في الكود نفسه وليس في RDBMS Server , وحدث ذلك بالجملة المهمة جدا :

$member  = mysql_fetch_array(mysql_query($qu));

والتي ستقوم بإستقبال جميع ال fields من mysql server لذلك السجل الذي فيه username مدخل , ومن هذه الحقول حقل ال Password , بالتالي هنا أنا لن أسمح أساسا بأن تكون هناك إمكانية لتخطي هذا الكود بعمل SQL Injection لأن كود إختبار الباسورد ببساطة لن يدخل في RDBMS وينفذ ;)

عموما ذكرت المثال فقط لأعرف هل هناك إمكانيات أخرى ...

تم تعديل بواسطه Xacker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وماذا عن

$pass =$_POST['passwd']; // passwd = 1 OR 1=1

طالما لا أستطيع أن أجرب هذه الأمور بسهولة، أخبرني أنت كيف يكون شكل التنفيذ أساساً في جملة IF؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نفرض أن كلمة المرور واليوزر الحقيقيين :

hgb

123456

نفرض البيانات المدخلة كانت :

$name=$_POST['user']; // = 'hgb'
$pass =$_POST['passwd']; // = '1 OR 1=1'

جملة If الحقيقية :

if ($member AND $member['password'] == $pass)

جملة If في التنفيذ ستكون هكذا :

if (true and '123456' ==' 1 OR 1=1')

القيمة true ظهرت من أن هناك مدخل في الجدول بإسم متغير username=hgb من هذا السطر

$member  = mysql_fetch_array(mysql_query($qu));

ثم تم تحميل قيم الحقول جميعها لليوزر hgb في المصفوفة member أيضا , من هنا في خانة $member['password'] ستكون القيمة 123456 الحقيقة لتتم مقارنتها مع ' 1 OR 1=1' , بالتالي لن يتحقق شرط If مهما أدخلت إلا بأن تدخل القيمة من البداية صحيحة 123456 في $_POST['passwd'] .

تم تعديل بواسطه Xacker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخبرني أولاً، عندما تقوم بكتابة $pass ضمن الشرط فيتم استبدالها بالقيمة المدخلة + الـ single quotes بشكل اوتوماتيكي دون أن تقوم بكتابة الشكل الآخر

 AND $member['password'] == '.$pass.'

؟؟

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يا X لايتم وضع single quotes بشكل آلي , وإنما وضعتها أنا لتوضيح المقارنة النصية التي ستكون ...

والقيمة التي ستمرر تعتمد على نوع قيمة POST التي وضعت من الأساس في ملف html مثلا , ولتكن على الشكل :

<input type="text" name="password" size="20">

لاحظ في input type ... ولايمكن أن تكون غير TEXT هنا بقية الأنواع :

type = text|password|checkbox|radio|submit|reset|file|hidden|image|button

لذلك يجب أن تكون المقارنة نصية في هذه الحال ! ولو أدخلت أي شيء في مكان password field سيظهر كما هو وقت المقارنة .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

و لكن ....

إذا كان يطبع أى شئ من مخرجات جملة ال select الأولى يمكن إستغلال هذا بإستخدام union all و عرض محتويات جدول آخر

أو أخطر من هذا , فإذا كان اليوزر لديه صلاحية , فما المانع من وضع

; DROP TABLE users; --

مكان اليوزر نيم

أو أى جملة آخرى ك Insert مثلا

أو إستخدام ال xp_cmdshell فى الSQLServer

ملخص كلامى أنه يجب فلترة المدخلات قبل وضعها فى جمل ال mysql فالحيل كثيرة جدا

تم تعديل بواسطه net_code
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
function GetSQLValueString($theValue, $theType) {
if (!$theValue) return '';
if (!$theType) $theType = gettype($theValue);
switch ($theType) {
case "string":
case "blob":
case "text":
//$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
$theValue = ($theValue != "") ? "'" . mysql_real_escape_string($theValue) . "'" : "NULL";
break;
case "password":
//$theValue = ($theValue != "") ? "'" . md5($theValue) . "'" : "NULL";
$theValue = ($theValue != "") ? "'" . sha1($theValue) . "'" : "NULL";
break;
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "timestamp":
case "datetime":
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : " NOW( ) ";
break;
}
//debug ('GetSQLValueString', $theValue.'='.$theType);
return $theValue;
}

$name= GetSQLValueString($_POST['user'], 'text');
$pass =GetSQLValueString($_POST['passwd'], 'password');

?>

تم تعديل بواسطه أبو محمد اللحياني
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فعلاً كلامك صحيح H، إخراج المدخلات من استعلام SQL يلغي الخطر تماماً مع الأخذ بعين الاعتبار ما ذكره الأخ أبو محمد.

الموضوع أخذ مني بعض الوقت حتى استوعبت ما تحاول قوله

لست على ما يرام هذه الأيام.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إضافة للموضوع :-

يمكن تلخيص الحماية من ال sql injection أو الحد من حيل ال sqlinjection

1- منع ال error reporting أى منع البرنامج من أن يخرج أى رسائل خطأ و بهذا لن يستطيع المخترق الحصول على أى معلومات توصله إلى أسماء الجداول أو الحقول الخاصة بقاعدة البيانات و لن يبقى أمامه إلا التخمين ( مثلا : اسم جدول الأعضاء users , members , customers ,.....) و هنا يأتى دور ال table prefix

2- إستخدام ال table prefix و هى أن تضع حرف أو حرفان فى بداية إسم الجداول ( بهدف عدم تعارض أسماء الجداول إذا كنت تتعامل مع عدة برامج على قاعدة بيانات واحدة و لكننا سنستخدمها هنا للحماية )

مثلا بدلا من جدول users يصبح ex_users ( على قدر المستطاع إبتعد عن أن يكون ال prefix أول حروف من إسم الموقع أو السكريبت لأنه أول شئ يخطر على بال المخترق فى التخمين )

3- فلترة المدخلات بإستبدال مثلا الكلمات الضارة مثل drop أو select أو عمل escape مثلا أو أى طريقة بحيث تحد من أمكانية التلاعب فى المدخلات ( كود الأخ أبو محمد رائع فعلا أعجبنى جزء الباسوورد جدا و لكن لى عودة إن شاء الله مع الكود )

#

# POST Method هي الوحيدة التي قد تسبب مشكلة ما إن وجد هذا الضعف الأمني لأنها الوحيدة التي تستطيع أن تقوم بتغيير شئ ما على السيرفر، بخلاف GET.

آسف يا Xacker و لكنى لم أستوعب هذه النقطة ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
آسف يا Xacker و لكنى لم أستوعب هذه النقطة ؟؟

خطأ مني، شكراً على التنبيه - كلا POST و GET يمكن استخدامهم في SQL.

مثال على GET;

تم تعديل بواسطه Xacker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
خطأ مني،

القليل من يعترف ، وهذا يدل على معدن الصدق والكثير من يلف ويدور .

أيضاً من الفوائد في هذا الجانب

define("ISMQ" ,get_magic_quotes_gpc());
$post = array();
if (count($_POST) > 0 ) {
foreach( $_POST as $key => $value) {
$value = trim($value);
//if (empty ($value)) continue;
if (intval($value)>0) $post[$key] = intval($value);
elseif (strlen($value)>0) {
$post[$key] = (ISMQ) ? $value : addslashes($value);
}
}
unset ($key, $value);
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قرأت الدرس ،،

اشكرك X على الدرس الرائع ،،

يعني واحد يتعلم شوي افضل مما يبقى .. مثل الاطرش بالزفة :lol:

صار زمان لم اقرء دروسك .. منذ ايام دورت الاسمبلي B)

لو اردت ان اتعلم بهذا المجال ..

بأي الكتب ابدء؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بأي الكتب ابدء؟

على ما أظن أنه لا يوجد كتب في هذا المجال, ابحث في Google وستجد الكثير من الامثلة الرائعة لتعلم هذا الشيئ, ايضا أنصحك بتعلم SQL أو ليس تعلم و إنما أحتراف كي تستطيع التعامل مع كافة الحالات, و السلام عليكم

تم تعديل بواسطه Wael Dalloul
خطأ إملائي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هناك كتب في حماية تطبيقات الويب (بالتالي تتعلم !حماية تطبيقات الويب :lol:) لكن للأسف أنا لا أحفظ أسماء الكتب بشكل دقيق وغالباً أقرأ من المواد المنشورة كمحاضرات أو ما شابه. سأنظر عندي عند توفر الوقت عن بعض الأسماء علّي أجد ما يفيد (والوقت ضيّق جداً علي للتنويه).

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
والوقت ضيّق جداً علي للتنويه

كان الله في العون .. جالس تقتل ذبان (بعوض) :lol:

تم تعديل بواسطه الاخير زمانه
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
كان الله في العون .. جالس تقتل ذبان (بعوض) :lol:

من وقت لآخر نعم :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
من وقت لآخر نعم :)

طبعا انا امزح فقط ،، :wink:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخى العزيز اكس

موضع ممتاز فعلا و شكرا لك عليه و شكرا لاخوة فى التفاعل

و رايد ان اعرف شئ انا استخدم فى عمليه الاضافة : امر

 

db.Execute (str_insert)

فعل هذا مامن .. حيث انى اضف بالكود الاتى :

str_insert="insert into cust_info(cust_name,cust_nationalty,cust_city,cust_birthday,cust_marig_date,cust_salary,cust_tel_home,cust_tel_mobile,cust_tel_work,cust_tel_fax,cust_company,cust_job,cust_address,cust_sadba,cust_zipcode,cust_email,cust_add_date) values ("                        str_insert=str_insert+"'"+var(0,0)+"'," ' name                        str_insert=str_insert+"'"+var(0,1)+"'," ' nationail                        str_insert=str_insert+"'"+var(0,2)+"'," ' city                        str_insert=str_insert+"'"+var(0,3)+"',"      ' birth                        str_insert=str_insert+"'"+var(0,4)+"',"      ' maruage                        str_insert=str_insert+"'"+var(0,5)+"'," ' sal                        str_insert=str_insert+"'"+var(0,6)+"'," ' tel home                        str_insert=str_insert+"'"+var(0,7)+"'," ' tel mobile                         str_insert=str_insert+"'"+var(0,8)+"'," ' tel work                        str_insert=str_insert+"'"+var(0,9)+"'," ' tel fax                        str_insert=str_insert+"'"+var(0,10)+"',"' company                        str_insert=str_insert+"'"+var(0,11)+"',"' job                        str_insert=str_insert+"'"+var(0,12)+"',"' address                        str_insert=str_insert+"'"+var(0,13)+"',"' sad                        str_insert=str_insert+"'"+var(0,14)+"',"' zip                        str_insert=str_insert+"'"+var(0,15)+"',"' email                        str_insert=str_insert&add_date                        str_insert=str_insert+")"                         'test code                        'response.write(str_insert)                        'add the row                         db.Execute (str_insert)

و شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

كنت كتبت موضوع مسبقاً

عن كيفية حل هذه الثغرة

في جافا

أضعه هنا من باب الشيء بالشيء يذكر

لمحة جافاوية 10:ثغرة الحقن

بالمناسبة الثغرة مشهورة جداً

بل تكاد تكون الأشهر

وجميع لغات البرمجة الحديثة توفر آلية لحلها

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اى حاجه داخله الداتابيز بأمررها الأول قبل ما ادخلها الداتابيز على mysql_real_escape_string

اى حاجه خارجة لصفحة ويب بأمررها الأول قبل ما اخرجها للصفحة على htmlentities

وهى دوال جاهزة متوفرة مع PHP دون اى اكواد اضافية - هل هذا يكفى؟

 

أو أخطر من هذا , فإذا كان اليوزر لديه صلاحية , فما المانع من وضع

Expand  -  Plain text

; DROP TABLE users; --

مكان اليوزر نيم

أو أى جملة آخرى ك Insert مثلا

أو إستخدام ال xp_cmdshell فى الSQLServer

ملخص كلامى أنه يجب فلترة المدخلات قبل وضعها فى جمل ال mysql فالحيل كثيرة جدا

هذه الحيل لن تنفذ ولن تفيد - لأن mysql_query ينفذ جملة sql واحدة (unique query بمعنى multiple queries are not supported) فى mysql_query.

والأفضل استخدام mysql_real_escape_string مع المتغيرات قبل حقنها فى جملة sql

<input type="text" value="password" size="20">
") or die ("Error connect database");                mysql_select_db("test", $link) or die ("Error select database");                 $query  = "SELECT * FROM users WHERE name='".$name."' AND password='".$pass."'";                $result = mysql_query($query, $link);                 if (mysql_numrows($result)>0)                {                        $row = mysql_fetch_row($result);                         echo 'Welcome ... '.htmlentities($row[1], ENT_QUOTES).'';                }                mysql_close($link);        }        if (isset($_POST['comment']))                echo 'Your comment: '.htmlentities($_POST['comment'], ENT_QUOTES).'';        echo ''; ?>Username: <input type="text" name="user" value="">Password: <input type="text" name="passwd" value=""><textarea name="comment"></textarea>
< script>alert('Javascript will not work')</script>

$name = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['passwd']);

$qu = "SELECT * FROM users WHERE name='".$name."'" ;

$member = mysql_fetch_array(mysql_query($qu));

if ($member AND $member['password'] == $pass )
{
... etc






وعند اخراج المتغيرات الى صفحة ويب كما ذكر الاخ hgb
 
تستخدم معها htmlentities

هاوضح بمثال
فى mysql اعمل قاعدة بيانات اسمها test
اعمل فيها جدول اسمه users

[table=Table][tr][th]id[/th][th]name[/th][th]password[/th][/tr][tr][td=100]1[/td][td=100]admin[/td][td=100]123456[/td][/tr][tr][td=100]2[/td][td=100]user[/td][td=100]abcd[/td][/tr][/table]
 
حاول ان تعمل هاك للصفحة دى XSS او SQL Injection او Code Injection

الحماية فقط ب mysql_real_escape_string و htmlentities وهى دوال جاهزة متوفرة مع PHP دون اى اكواد اضافية

حاول انت تدخل فى الاسم او كلمة المرور اى sql injection
حاول ان تدخل فى الcomment اى xss ذى
 
 

انا باستخدم الاسليب دى فى حماية صفحاتى - مشكور جدا لو حد اكتشف فيها ثغره ونبهنى ليها

index.rar

تم تعديل بواسطه Xacker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

^^^

اخي الا تظن انه يمكن تجاوز الداله Mysql_real_escape_string

عن طريق الامر التالي في خانة اليوزر : or 1=1

الباس : 44444444444444444444

..في امان الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أليس من المفترض أن تقوم بإدخال ' حتى تستطيع أن تقوم بإدخال أمر جديد أخ حازم؟

و mysql_real_escape_string تعالج قيمة '

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
^^^

اخي الا تظن انه يمكن تجاوز الداله Mysql_real_escape_string

عن طريق الامر التالي في خانة اليوزر : or 1=1

الباس : 44444444444444444444

..في امان الله

أظن أنه لا يمكن تجاوز الداله Mysql_real_escape_string بالطريقة التى ذكرتها
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .