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

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

28
Как я могу предотвратить внедрение SQL в PHP?
Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. На этот вопрос есть ответы на Переполнение стека на русском : Каким образом избежать SQL-инъекций в PHP? Если пользовательский ввод вставляется без изменения в запрос …


13
Как работает SQL-инъекция из комикса XKCD «Таблицы Бобби»?
Просто смотрю на: (Источник: https://xkcd.com/327/ ) Что делает этот SQL: Robert'); DROP TABLE STUDENTS; -- Я знаю и то, 'и другое --для комментариев, но разве это слово тоже не DROPкомментируется, поскольку оно является частью одной строки?

7
Достаточно ли подготовленных операторов PDO для предотвращения внедрения SQL?
Допустим, у меня есть такой код: $dbh = new PDO("blahblah"); $stmt = $dbh->prepare('SELECT * FROM users where username = :username'); $stmt->execute( array(':username' => $_REQUEST['username']) ); Документация PDO гласит: Параметры для подготовленных утверждений не должны быть указаны; водитель справится с этим за вас. Это действительно все, что мне нужно сделать, чтобы …

4
SQL-инъекция, которая обходит mysql_real_escape_string ()
Есть ли возможность SQL-инъекции даже при использовании mysql_real_escape_string()функции? Рассмотрим этот пример ситуации. SQL построен на PHP следующим образом: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_real_escape_string(GetFromPost('password')); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'"; Я слышал, как многие люди говорят мне, что подобный код все еще опасен и его можно …

9
Как подготовленные операторы могут защитить от атак SQL-инъекций?
Как подготовленные операторы помогают нам предотвратить атаки с использованием SQL-инъекций ? Википедия говорит: Подготовленные операторы устойчивы к внедрению SQL, потому что значения параметров, которые передаются позже с использованием другого протокола, не должны быть корректно экранированы. Если исходный шаблон оператора не является производным от внешнего ввода, внедрение SQL невозможно. Я не …

12
Java - escape-строка для предотвращения внедрения SQL
Я пытаюсь внедрить некоторые анти-SQL инъекции в Java, и мне очень трудно работать со строковой функцией replaceAll. В конечном счете мне нужна функция, которая преобразует любые существующие \в \\, любые "в \", любые 'в \'и любые \nв \\nтак, чтобы при оценке строки с помощью SQL-инъекций MySQL блокировалась. Я испортил некоторый …

18
Могу ли я защитить себя от SQL-инъекции, избегая одинарных кавычек и окружая вводимые пользователем одинарные кавычки?
Я понимаю, что параметризованные SQL-запросы являются оптимальным способом дезинфекции пользовательского ввода при построении запросов, содержащих пользовательский ввод, но мне интересно, что не так с вводом пользователя и экранированием одинарных кавычек и окружением всей строки одинарными кавычками. Вот код: sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'" Любая одинарная кавычка, …

10
Как PreparedStatement предотвращает или предотвращает внедрение SQL?
Я знаю, что PreparedStatements избегает / предотвращает внедрение SQL. Как оно это делает? Будет ли окончательный запрос формы, созданный с использованием PreparedStatements, быть строкой или иначе?

6
Защищают ли htmlspecialchars и mysql_real_escape_string мой PHP-код от внедрения?
Ранее сегодня был задан вопрос о стратегиях проверки ввода в веб-приложениях . Главный ответ на момент написания предполагает PHPпросто использовать htmlspecialcharsи mysql_real_escape_string. Мой вопрос: всегда ли этого достаточно? Мы должны знать больше? Где ломаются эти функции?

7
Почему мы всегда предпочитаем использовать параметры в операторах SQL?
Я новичок в работе с базами данных. Теперь я могу написать SELECT, UPDATE, DELETEи INSERTкоманду. Но я видел много форумов, где мы предпочитаем писать: SELECT empSalary from employee where salary = @salary ...вместо того: SELECT empSalary from employee where salary = txtSalary.Text Почему мы всегда предпочитаем использовать параметры и как …

12
Безопасно ли не параметризовать SQL-запрос, если параметр не является строкой?
Что касается внедрения SQL , я полностью понимаю необходимость параметризации stringпараметра; это одна из старейших уловок в книге. Но когда можно оправдать отсутствие параметризации SqlCommand? Считаются ли какие-либо типы данных "безопасными" для отказа от параметризации? Например: Я не считаю себя в любом месте рядом с экспертом в SQL, но я …

21
Избегайте SQL-инъекции без параметров
У нас здесь еще одна дискуссия об использовании параметризованных запросов sql в нашем коде. У нас есть две стороны в обсуждении: я и некоторые другие, которые говорят, что мы всегда должны использовать параметры для защиты от инъекций sql, и другие ребята, которые не думают, что это необходимо. Вместо этого они …

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

5
Предотвращение SQL-инъекций в Node.js
Можно ли предотвратить SQL-инъекции в Node.js (желательно с помощью модуля) так же, как в PHP были подготовленные операторы, защищающие от них. Если да, то как? Если нет, то каковы некоторые примеры, которые могут обойти предоставленный мной код (см. Ниже). Некоторый контекст: Я создаю веб-приложение с внутренним стеком, состоящим из Node.js …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.