سؤال

باستخدام PHP 5.2.6 في XAMPP :
قرأت عن حقن sql هنا وحاولت أن يلي نموذج تسجيل الدخول :

<html><body>
        <form method='post' action='login.php'>
            <input type='text' name='user'/>
            <input type='text' name='pass'/>
            <input type='submit'/>
        </form>
</body></html>

و رمز php :

<?php
$user = $_POST['user'];
$pass = $_POST['pass'];
$query = "Select * from users where user='$user' AND pass='$pass'";
echo $query;
mysql_connect('localhost','root','');
mysql_select_db('test');
$res = mysql_query($query);
if($res) $row = mysql_fetch_assoc($res);
if($row) echo 'yes';
?>

اكتشفت ، $تمرير متغير بالفعل جميع الأحرف الخاصة هرب.هل هناك حاجة إلى استخدام mysql_الحقيقي_الهروب_سلسلة في PHP 5.2.6 بعد ذلك ؟

هل كانت مفيدة؟

المحلول

فمن المرجح PHP الخاص بك ملقم تكوين لاستخدام ونقلت السحر.وهو إهمال الإعداد في PHP تلقائيا يهرب جميع البيانات الواردة في البرنامج النصي PHP.إنه إهمال و سيتم إزالتها في PHP 6. وهنا زند الأسباب لإزالة ونقلت السحر.

فمن الأفضل أن لا تعتمد على "السحر" الذي يجعل الكثير من الأمور في العمل ولكن فواصل الآخرين.صراحة الهروب من المدخلات الخاصة بك هو أكثر موثوقية و يجعلك أفضل تصميم رمز.على سبيل المثال, ليس كل المدخلات يحتاج إلى أن هرب في نفس الطريق.

نصائح أخرى

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

لمزيد من المعلومات حول ونقلت السحر و لماذا هي سيئة ، وكيفية تعطيلها ، نلقي نظرة على بعض من هذه الأسئلة/الأجوبة:

لا، أنا لا أعتقد أنك على حق هنا. أم لا فب يهرب سحرية أحرف خاصة في هذا المثال، المترجم لن تؤدي <م> الخلية المحددة الهروب على وسائط إلكترونية.

وأعتقد أنه من المرجح للغاية أن هناك ثغرة في هذا القانون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top