Должен ли mysql_real_escape избегать использования переменных для всех запросов к базе данных?mysql_real_escape по запросам
ответ
Да, всегда избегайте переменных, которые вы передаете в запросы.
Еще лучше использовать PDO:
<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
Таким образом, вам не нужно иметь дело с побега (если у вас есть вопросы, которые требуют особого ухода).
Но если вы настаиваете на использовании расширения MySQL, используйте mysql_real_escape_string()
.
'SELECT * FROM users WHERE id = $ id;' Как избежать помощи здесь? –
@ Col.shrapnel Я говорил об этом виде запроса. –
Да, вы должны избегать всех переменных по соображениям безопасности. Экранирование номеров и т. Д. Ничего не меняет, поэтому нет проблем с их побегом. Вам следует избегать всего, поскольку в противном случае вы можете случайно пропустить любую переменную. Я предлагаю использовать mysql_real_escape_string()
-function PHP или PDO prepared statements.
Должны ли вы всегда защищать аргументы запроса? Да.
Должны ли вы всегда использовать mysql_real_escape_string
? Номер
Если вы не собираетесь использовать prepared statements, рассмотреть вопрос об использовании mysqli_real_escape
(возражаете я для улучшилось) для кодирования строки, содержащие NUL
(ASCII 0), \n
, \r
, \
, '
, "
, и Control-Z. Однако могут потребоваться дополнительные меры предосторожности.
- это активно развиваемое расширение mysql в настоящее время. У старого MySQL-расширения есть только периодические исправления, но уже давно не активно развивается.
Смотрите эти две обучающие программы на DevZone (но также отмечают, что обе статьи являются древними по стандартам Интернет)
Спасибо, я воспользуюсь этим. –
- 1. mysql_real_escape более одного раза
- 2. Справка по запросам MYSQL
- 3. Консультация по дистанционным запросам
- 4. Помощь по SQL-запросам
- 5. Фильтр Zeppelin по запросам
- 6. Помощник по групповым запросам
- 7. Сортировка по двум запросам
- 8. Помощь по SQL-запросам
- 9. петля по запросам
- 10. Помощь по SQL-запросам
- 11. ЗАКАЗАТЬ ПО ЗАПРОСАМ (вложенные?)
- 12. Справка по запросам CAML?
- 13. ActiveRecord.establish_connection параллелизм по запросам
- 14. Помощь по SQL-запросам
- 15. Справка по запросам Mysql
- 16. Объединить строку mysql_real_escape с sprintf
- 17. mysql_real_escape просто делает текст пустым
- 18. Многоязычный поиск по поисковым запросам
- 19. NHibernate - неправильные столбцы по запросам
- 20. Данные пользователя по запросам cURL
- 21. Elasticsearch сортировать по нескольким запросам
- 22. Сложная справка по SQL-запросам
- 23. Создание неправильных столбцов по запросам
- 24. Рекомендации по условным запросам mysql
- 25. Помощь по запросам SQL-запросов
- 26. SQL-соединение по многим запросам
- 27. Производительность MongoDB по запросам агрегирования
- 28. Рекомендации по встроенным SQL-запросам
- 29. Производительность Кассандры по разным запросам
- 30. Изменить сортировку по запросам NHibernate
Неа. mysql_real_escape_string применим только для строк с разделителями с котировкой и бесполезно для чего-либо еще –
У кого есть эти вопросы? – mario
@mario - возможно, кто-то ищет значок с вопросом, связанным с голосованием. –