Articles of sql injection

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'"; Я слышал, что многие люди говорят мне, что такой код по-прежнему опасен и может быть mysql_real_escape_string() даже при […]

Что такое PDO-эквивалент функции mysql_real_escape_string?

Я mysql_* свой код от использования mysql_* до PDO . В моем коде у меня был mysql_real_escape_string() . Что эквивалентно этому в PDO?

Является ли «вход фильтра, выход выхода» все еще действительным с PDO

Я прочитал это раньше «вход фильтра, выход выхода», но является ли фильтрация ввода действительно необходимым, когда я использую PDO с PHP? Я думал, что с PDO мне не нужно фильтровать входные данные, потому что подготовленный оператор заботится о SQL-инъекциях. Я думаю, что «выход выхода» по-прежнему действителен, но «вход фильтра» по-прежнему действителен?

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

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

Является ли предотвращение XSS и SQL Injection так же просто, как это делает

Вопрос : предотвращает ли XSS (межсайтовый скриптинг) простое использование strip_tags для любых сохраненных полей ввода и запускает htmlspecialchars для любого отображаемого вывода … и предотвращает SQL Injection с помощью подготовленных инструкций PHP PDO? Вот пример: // INPUT: Input a persons favorite color and save to database // this should prevent SQL injection ( by using […]

Sql Защита от впрыска с помощью только str_replace

Я изучаю SQL-инъекцию и пробовал в своем PHP-коде этот запрос: $condition = str_replace(["'","\\"],["\\'","\\\\"], @$_GET['q']); $query = "SELECT * FROM dummy_table WHERE dummy_column = '$condition'"; DB и таблица charset установлены в UTF8. Я не могу ничего вводить, может кто-нибудь мне помочь? EDIT: Как указывал GarethD, это сработало бы первым 'и чем \, разрешив инъекцию, как насчет […]

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

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

Должен ли я использовать mysql_real_escape_string, если я привязываю параметры?

У меня есть следующий код: function dbPublish($status) { global $dbcon, $dbtable; if(isset($_GET['itemId'])) { $sqlQuery = 'UPDATE ' . $dbtable . ' SET active = ? WHERE id = ?'; $stmt = $dbcon->prepare($sqlQuery); $stmt->bind_param('ii', $status, $_GET['itemId']); $stmt->execute(); $stmt->close(); } } Нужно ли мне в mysql_real_escape_string в этом случае, или я в порядке?

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

Поэтому я пытаюсь реплицировать SQL Injection второго порядка. Вот пример шаблона из двух php-сайтов, которые я подготовил. Давайте просто назовем это регистрационной формой избирателя. Пользователь может зарегистрироваться, а затем вы можете проверить, являетесь ли вы зарегистрированным избирателем или нет. insert.php <?php $db_selected = mysql_select_db('canada',$conn); if (!db_selected) die("can't use mysql: ". mysql_error()); $sql_statement = "INSERT into […]

Ссылка: что такое идеальный пример кода с использованием расширения MySQL?

Это делается для создания ресурса обучения сообщества . Цель состоит в том, чтобы иметь примеры хорошего кода, которые не повторяют ужасных ошибок, которые так часто можно найти в скопированном / вставленном PHP-коде. Я попросил его сделать Community Wiki. Это не означает соревнование по кодированию. Речь идет не о том, чтобы найти самый быстрый или самый […]