Основные SQL-инъекции?

В предыдущем вопросе мне сказали, что мой запрос склонен к инъекциям SQL.

get_stats = mysql_query("SELECT * FROM visitors WHERE site='$_GET[site]' AND date BETWEEN '$start_date' AND '$end_date' "); 

Каким будет самый простой способ приблизиться к этой проблеме? И есть ли у вас дополнительные чтения по теме инъекций? (что-то, что я могу пропустить в Google). Благодаря!

Используйте подготовленные отчеты .

В большинстве случаев Подготовленные заявления выполняют работу по объединению вашего запроса с вашими параметрами безопасным образом.

$ _GET ['site'] – это значение, которое исходит прямо из URL-адреса в браузере, что означает, что пользователь может легко изменить это значение на все, что захочет, вы должны проверить / дезинформировать это значение, все значения на самом деле перед отправкой в ​​базу данных ,

Что-то вроде этого было бы началом, все еще можно было бы использовать больше работы, и есть много способов сделать это, я бы создал пользовательскую функцию / класс, чтобы легко передавать все переменные через sitewide, которые могут просто повторяться, например,

 $site = mysql_real_escape_string($_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 – самая простая и простая форма безопасности здесь.