كيف يمكنني إزالة الانزلاق الخلفي من إدخال المستخدمين
سؤال
أنا أتعامل مع هذا: P
function escape($string)
{
$string = stripslashes($string);
if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string, $this->connection);
} else {
return mysql_escape_string($string);
}
}
$content = '""""""test\'te%%%%st`test_huhu\'_';
echo '<br>output 1 = '.stripslashes($content);
echo '<br>output 2 = '.$db->escape($content);
الإخراج
output 1 = """"""test'te%%%%st`test_huhu'_
output 2 = \"\"\"\"\"\"test\'te%%%%st`test_huhu\'_
كيف تصنع output 2
سيكون نفس الشيء output 1
ولماذا output 2
أن تكون هكذا؟
المحلول
mysql_real_escape_string
يهرب كل شيء "
و '
لهذا السبب تحصل على كل تلك المائلة. إذا قمت بإزالة القطع المائلة قبل وضع البيانات في قاعدة بيانات ، فأنت مفتوح للهجمات التي تعتبر سيئة للغاية للأمان ، ألا تعتقد ذلك؟
لا تنتمي إلى StackOverflow