У меня есть приложение, которое берет данные через запрос POST. Я использую эти данные для вставки новой строки в базу данных. Я знаю, что использование mysql_real_escape_string()
(плюс удаление% и _) - это путь для строк, но как насчет целых значений? Прямо сейчас, я использую функцию PHP intval()
.Санитарный ввод базы данных Integer
Однако я хотел убедиться, что intval()
совершенно безопасен. Я не вижу способ атакующего, который предварительно формирует атаку SQL-инъекций, когда переменные запускаются через intval()
(так как он всегда возвращает целое число), но я хотел убедиться, что это случай от людей, у которых больше опыта, чем у меня .
Спасибо.
Heads up: Если вы имеете дело с номерами размером более 32 или 64 бит (в зависимости от вашей платформы) 'intval()' будет возвращать ноль. Это явно нежелательно, если вы пытаетесь хранить очень большие цифры в своей базе данных. Например, идентификаторы facebook не вписывались в 32 бита в течение многих лет. Http://developers.facebook.com/blog/post/45 –
@Frank Farmer: Хм .. это интересно. Спасибо за головы. Я рассмотрю, что мы можем сделать, чтобы решить эту проблему, если это необходимо. –