Вопросы с тегом 'sql-injection'

SQL-инъекция - это метод инъекции кода, используемый для атаки приложений, управляемых данными, в которых вредоносные операторы SQL вставляются в поле ввода для выполнения (например, чтобы сбрасывать содержимое базы данных злоумышленнику)
28

Как я могу предотвратить SQL-инъекцию в PHP?

Если пользовательский ввод вставлен без изменения в SQL-запрос, приложение становится уязвимым для SQL-инъекции, как в следующем примере: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variabl...
12 сент. '08 в 23:55
19

Как я могу санировать ввод пользователя с помощью PHP?

Есть ли где-нибудь функция-ловушка, которая хорошо работает для дезинфекции пользовательского ввода для SQL-инъекций и XSS-атак, но при этом допускает определенные типы HTML-тегов?
24 сент. '08 в 20:20
12

Как работает SQL-инъекция из комикса XBCD Bobby Tables?

Просто посмотри: (Источник: https://xkcd.com/327/) Что делает этот SQL: Robert'); DROP TABLE STUDENTS; -- Я знаю, что для комментариев есть ' и --, но не комментируется ли слово DROP, так как оно является частью одной и той же строки?
01 дек. '08 в 21:50
6

SQL-инъекция, которая распространяется вокруг mysql_real_escape_string()

Есть ли возможность внедрения SQL-кода даже при использовании функции mysql_real_escape_string()? Рассмотрим этот пример ситуации. SQL построен на PHP следующим образом: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_rea...
21 апр. '11 в 7:56
7

Являются ли подготовленные PDO заявления достаточными для предотвращения SQL-инъекций?

Скажем, у меня такой код: $dbh = new PDO("blahblah"); $stmt = $dbh->prepare('SELECT * FROM users where username = :username'); $stmt->execute( array(':username' => $_REQUEST['username']) ); В документации PDO говорится: Параметры для п...
25 сент. '08 в 15:43
11

Java - escape-строка для предотвращения SQL-инъекций

Я пытаюсь вставить некоторую анти-SQL-инъекцию в java, и мне очень сложно работать со строковой функцией replaceAll. В конечном итоге мне нужна функция, которая преобразует любые существующие \ в \\, любые " в \", любые ' в \' и любые \n в \\n, так ...
28 нояб. '09 в 16:11
19

Можно ли защитить от внедрения SQL путем экранирования одинарных кавычек и ввода данных пользователем в одинарные кавычки?

Я понимаю, что параметризованные SQL-запросы - это оптимальный способ очистки пользовательского ввода при создании запросов, содержащих пользовательский ввод, но мне интересно, что плохого в том, чтобы брать пользовательский ввод и экранировать любы...
26 сент. '08 в 12:41
9

Как подготовленные заявления защищают от атак SQL-инъекций?

Как подготовленные заявления помогают нам предотвратить атаки SQL injection? Википедия говорит: Подготовленные операторы устойчивы к SQL-инъекции, потому что значения параметров, которые затем передаются с использованием другого протокола, не нужн...
24 нояб. '11 в 23:17
12

Безопасно ли не параметризовать SQL-запрос, когда параметр не является строкой?

В терминах SQL-инъекции я полностью понимаю необходимость параметризации параметра string; что один из самых старых трюков в книге. Но когда может быть оправдано не параметризовать SqlCommand? Являются ли какие-либо типы данных "безопасными", чтобы ...
18 сент. '15 в 2:02
6

Должны ли htmlspecialchars и mysql_real_escape_string сохранить код PHP безопасным от инъекции?

Ранее сегодня был задан вопрос о правилах проверки ввода в веб-приложениях. Верхний ответ, на момент написания, предлагает в PHP просто использовать htmlspecialchars и mysql_real_escape_string. Мой вопрос: этого всегда достаточно? Больше мы должны...
21 сент. '08 в 8:58
21

Избегать инъекции SQL без параметров

У нас есть еще одно обсуждение здесь, когда мы работаем над использованием параметризованных sql-запросов в нашем коде. У нас есть две стороны в обсуждении: Я и некоторые другие, которые говорят, что мы всегда должны использовать параметры для защиты...
26 мая '09 в 12:38
7

Почему мы всегда предпочитаем использовать параметры в операторах SQL?

Я очень новичок в работе с базами данных. Теперь я могу написать команды SELECT, UPDATE, DELETE и INSERT. Но я видел много форумов, на которых мы предпочитаем писать: SELECT empSalary from employee where salary = @salary ... вместо: SELECT empSa...
21 сент. '11 в 19:51
9

Как PreparedStatement предотвращает или предотвращает SQL-инъекцию?

Я знаю, что PreparedStatements избегает/предотвращает внедрение SQL. Как оно это делает? Будет ли окончательный запрос формы, который построен с использованием PreparedStatements, будет строкой или иначе?
17 окт. '09 в 12:58
11

Должен ли я защищать SQL-инъекцию, если я использовал раскрывающийся список?

Я понимаю, что вы НИКОГДА не должны доверять пользовательскому вводу из формы, главным образом из-за возможности SQL-инъекции. Однако, это также относится к форме, в которой единственный вход из выпадающего списка (см. ниже)? Я сохраняю $_POST['si...
20 мар. '14 в 13:16
13

Что такое SQL-инъекция?

Возможные дубликаты: Как происходит инъекция SQL из таблицы "Bobby Tables" XKCD комическая работа? https://stackoverflow.com/search?q=sql+injection Может кто-нибудь объяснить SQL-инъекцию? Как это вызывает уязвимости? Где именно точка, в кото...
02 мар. '09 в 4:50