Я использую JSP некоторое время. У меня есть этот запрос:Предотвращение SQL-инъекций с использованием JavaScript/jQuery
query = "SELECT * FROM USER_PASS WHERE USERNAME = '" + name + "'";
Это уязвимо для инъекций SQL. Я просмотрел несколько статей и обнаружил, что могу использовать подготовленные инструкции, чтобы избежать инъекций SQL. Я нахожу это более запутанным. Мое мнение состоит в том, что я могу найти входные данные, такие как ;
, '
или --
во входном поле, заданном пользователем, тогда я могу показать им сообщение с предупреждением о том, что вы не можете использовать эти символы здесь, и я не буду обрабатывать данные. Это может быть мой код JavaScript:
function validateSQL()
{
var x=document.forms["myForm"]["username"].value;
var pos = 0;
pos=x.indexOf("'");
if (pos!=0)
{
alert("Trying to hack me?");
return false;
}
}
Какой лучше использовать? У этого есть недостатки?
Кто скажет, что злоумышленник будет использовать ваш интерфейс? Автоматизированные инструменты SQL-инъекции просто отправляют HTTP-запросы. – Blender
@Blender: Если я пишу готовое заявление вместо этого кода javascript, это предотвратит инъекции? –
Я бы +10 комментарий Блендера, если бы мог - * не доверять клиенту *. Подготовленные инструкции на сервере предотвращают * все * атаки SQL-инъекций (но не обязательно другие поверхности). Нет. Предотвращение плохой информации выходит за рамки SQL-инъекций. – 2013-02-23 06:18:40