Вопрос

В предыдущем вопросе мне сказали, что мой запрос склонен к 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 является самым основным и самая легкая форма безопасности здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top