Основные SQL-инъекции?
-
06-07-2019 - |
Вопрос
В предыдущем вопросе мне сказали, что мой запрос склонен к SQL-инъекции.
get_stats = mysql_query("SELECT *
FROM visitors
WHERE site=' В предыдущем вопросе мне сказали, что мой запрос склонен к SQL-инъекции.
<*>
Какой самый простой способ решить эту проблему? И у вас есть дальнейшее чтение на тему инъекций? (то, что я мог бы пропустить в Google). Спасибо!
GET[site]'
AND date BETWEEN '$start_date' AND '$end_date' ");
Какой самый простой способ решить эту проблему? И у вас есть дальнейшее чтение на тему инъекций? (то, что я мог бы пропустить в Google). Спасибо!
Решение
Используйте подготовленные заявления .
В большинстве случаев подготовленные операторы выполняют работу по безопасному объединению вашего запроса с вашими параметрами.
Другие советы
$ _ GET ['site'] - это значение, полученное прямо из URL-адреса в браузере, что означает, что пользователь может легко изменить это значение на любое, что ему нужно, вы должны проверить / очистить это значение, все значения перед его отправкой. в базу данных. Р>
Что-то вроде этого было бы началом, могло бы по-прежнему использовать больше работы, и есть много способов сделать это, я бы создал пользовательскую функцию / класс, чтобы легко передавать все переменные по всему сайту, которые могут просто повторять подобные вещи
$site = mysql_real_escape_string( $ _ GET ['site'] - это значение, полученное прямо из URL-адреса в браузере, что означает, что пользователь может легко изменить это значение на любое, что ему нужно, вы должны проверить / очистить это значение, все значения перед его отправкой. в базу данных. Р>
Что-то вроде этого было бы началом, могло бы по-прежнему использовать больше работы, и есть много способов сделать это, я бы создал пользовательскую функцию / класс, чтобы легко передавать все переменные по всему сайту, которые могут просто повторять подобные вещи
<*>GET['site']);
$start_date = mysql_real_escape_string($start_date);
$end_date = mysql_real_escape_string($end_date);
get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");
mysql_real_escape_string является самым основным и самая легкая форма безопасности здесь.