Почему следующий код небезопасен?Почему следующий код небезопасен?
<?php $user = $db->query
("SELECT * FROM users WHERE username='".$_GET["username"]."'
AND password=MD5('".$_GET["password"]."');"); ?>
Почему следующий код небезопасен?Почему следующий код небезопасен?
<?php $user = $db->query
("SELECT * FROM users WHERE username='".$_GET["username"]."'
AND password=MD5('".$_GET["password"]."');"); ?>
Метод GET передает закодированную информацию пользователя прилагается к запросу на страницу. Страница и закодированная информация разделяются символом? персонаж.
http://www.test.com/index.htm?name1=value1&name2=value2 Метод GET создает длинную строку, которая отображается в ваших журналах сервера, в поле «Расположение» браузера.
Метод GET предназначен для отправки только до 1024 символов.
Никогда не используйте метод GET, если у вас есть пароль или другая конфиденциальная информация для отправки на сервер.
GET не может использоваться для отправки на сервер двоичных данных, таких как изображения или текстовые документы.
Доступ к данным, отправленным методом GET, можно получить с помощью переменной окружения QUERY_STRING.
PHP предоставляет ассоциативный массив $ _GET для доступа ко всей отправляемой информации с использованием метода GET.
Метод POST передает информацию через HTTP-заголовки. Информация кодируется, как описано в случае метода GET, и помещается в заголовок QUERY_STRING.
Метод POST не имеет ограничений на размер данных, которые необходимо отправить.
Метод POST может использоваться для отправки ASCII, а также двоичных данных.
Данные, отправленные методом POST, проходят через HTTP-заголовок, поэтому безопасность зависит от протокола HTTP. Используя Secure HTTP, вы можете убедиться, что ваша информация защищена.
PHP предоставляет ассоциативный массив $ _POST для доступа ко всей отправляемой информации с использованием метода GET.
2-я секция: Действительно? Я думал, что '_POST' пришел из POST,' _GET' из GET и '_REQUEST' из обоих? – glglgl
Когда OP запросил разницу между GET и POST? если я не пропустил какую-либо историю изменений. Это, похоже, не имеет никакого отношения к вопросу о том, что этот код является небезопасным. –
Посмотрите на SQL-инъекцию – jeremy
Представьте, что я передаю это значение в '$ _GET [" username "]', ''; УДАЛИТЬ ОТ пользователей; --'. –
Вы можете ввести этот запрос и получить всю информацию о базе данных! – machineaddict