Intereting Posts
Как очистить динамические данные с помощью PHP Simple HTML DOM Parser Загрузка изображения с сервера android на PHP PHP / MySQL – «НАЧАТЬ … COMMIT» не работает Google OAuth 2.0 возвращает 400 «Bad Request» даже с игровой площадки Получение: допустимый объем памяти 33554432 байт исчерпан Самый быстрый способ чтения метаданных PNG в PHP Может ли PHP «писать» или «копировать» на удаленном удаленном ресурсе, но не «отключать» или «переименовывать» («Доступ запрещен») Команды MySqli не синхронизированы; вы не можете запустить эту команду сейчас R не работает должным образом при использовании функции PHP exec () Это плохая модель? (Переключатель внутри / для петли foreach) MD5 строки в ActionScript возвращает неверные результаты, когда какой-то hex является частью строки (т. Е. «Abc \ xBF \ x4E») laravel, какой маршрут или ссылку следует использовать для этого случая Объединяет ли соединение БД все, что важно? Почему .htaccess перенаправляет URL-адрес маршрутизации, но разрывает ссылки css / js / image после двух уровней в глубину? как получить последний символ строки в PHP?

Возможна ли SQL-инъекция с помощью POST?

Sql Injection возможен, если параметры передаются через GET. Но возможно ли это также через POST. Если да, может ли https предотвратить это?

Solutions Collecting From Web of "Возможна ли SQL-инъекция с помощью POST?"

Да, это возможно с $_POST а также с $_GET , $_COOKIE и $_REQUEST . HTTPS не будет защищать вас вообще. Вы должны использовать некоторые функции для защиты вас, например mysql_real_escape_string или использовать подготовленные операторы .

Все сообщения из веб-браузера должны обрабатываться как «ненадежные» . Другие методы, которым вы не можете доверять, – это Ajax , file uploads и JavaScript form validations (среди прочего). Все эти данные поступают непосредственно из веб-браузера и не должны быть доверены, прежде чем вы отфильтровываете их или проверяете данные.

Единственное, что вы можете доверять, это $_SESSION , при условии, что вы ТОЛЬКО включаете проверенные данные в переменные $_SESSION .

  1. Да, вы можете вводить SQL через POST. Любой может изменить то, что отправляет запросы POST (найдите аддон для firefox под названием «хакер»)
  2. Ни один https не поможет, потому что он ничего не может сделать против атак на уровне веб-приложений. Он только предотвращает нападения «человек в середине» и обнюхивает.

Вы должны избегать всех представленных пользователем данных независимо от метода.

Нет, между этими двумя методами нет разницы.

SQL-инъекция происходит, когда вы используете введенный пользователем ввод в SQL-операторах без его очистки. Не имеет значения, получили ли вы данные через GET или POST, или если они были зашифрованы. Важно то, что вы делаете с помощью ввода после его появления.

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

Самый простой способ, который я нашел в PHP, сделать это на сегодняшний день, – использовать оболочку mysqli Codesense . Это аккуратный, маленький, класс, который удаляет большую часть проблем, связанных с необработанными подготовленными операциями, был более чем достаточно прочным, где я его использовал.

Использование этого подготовленного SQL лишь немного сложнее, чем прямой SQL, поэтому на самом деле нет оправдания.

https не может защитить вас здесь. Отфильтруйте ввод (ы)