كيفية تأمين هذه الخلية البيان في PHP النصي ؟
-
05-07-2019 - |
سؤال
كيفية تأمين هذه الخلية بيان بنيت في PHP?سيكون عرضة للحقن SQL?
$sql = sprintf("INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())",
mysql_escape_string($_SESSION['client']['id']),
mysql_escape_string($_POST['id']));
المحلول
ونعم ل٪ د النتائج إلا في عدد ليس هناك حاجة للهروب من السلسلة. إن استخدام علامات الاقتباس المفردة توفير تحسين سرعة أيضا. لذلك وسيلة آمنة وسريعة هي:
$sql = sprintf('INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())', $_SESSION['client']['id'], $_POST['id']);
نصائح أخرى
أي أنها لا يجب أن تكون عرضة للخطر.
هنا مقالة مفصلة حول كيفية تأمين الخاص بك SQL استفسارات PHP.
http://www.tech-evangelist.com/2007/11/05/preventing-sql-injection-attack/
ويبدو على ما يرام بالنسبة لي.
في الواقع، ليس هناك أي حاجة لاستخدام mysql_escape_string في هذه الحالة، منذ sprintf ( "٪ د") يمكن أن يؤدي إلا إلى عدد؟
لا تنتمي إلى StackOverflow