Как выбрать между методами GET и POST в формах HTML? - PullRequest
21 голосов
/ 21 сентября 2008

Я хотел бы знать все плюсы и минусы использования этих двух методов. В частности, последствия для веб-безопасности.

Спасибо.

Ответы [ 17 ]

0 голосов
/ 21 сентября 2008

Поисковая система Google является примером формы GET, потому что вы должны иметь возможность выполнять поиск дважды подряд и не влиять на результаты, выполняя это. Это также имеет приятный эффект, что вы можете ссылаться на страницу результатов поиска, потому что это обычный запрос GET, как и любой другой адрес.

Как уже говорилось ранее, используйте POST для удаления или обновления данных, но я хотел бы добавить, что вы должны немедленно перенаправить вашего пользователя на страницу GET.

http://en.wikipedia.org/wiki/Post/Redirect/Get

0 голосов
/ 21 сентября 2008

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

Многие поисковые сайты обычно используют метод GET, поскольку это дает вам возможность добавить в закладки ваши поисковые запросы. Надеюсь, это поможет.

0 голосов
/ 21 сентября 2008

Ответ Дэвида М - мой голос.

Я просто хотел добавить один предмет, о котором слышал, может быть, это была городская легенда ??

У кого-то был сайт со ссылками, предназначенными только для внутреннего использования, для удаления файлов на его сайте. Все было хорошо, пока веб-паук (я думаю, что это был Google) каким-то образом нашел эти ссылки и весело следил за каждой из них, вызывая удаление всех файлов на его сайте. Ссылки использовали GET и должны были использовать POST, поскольку пауки не следуют за ссылками POST.

0 голосов
/ 21 сентября 2008

Используйте GET, если хотите, чтобы результат был добавлен в закладки.

0 голосов
/ 21 сентября 2008

Одна гоча, которую я заметил на днях, и это было настоящее "О-о-о!" момент для меня.

У нас есть сторонняя поисковая система на нашем сайте, и они используют метод GET для публикации поискового запроса в своем коде. Кроме того, у меня был некоторый код, который искал возможные атаки с использованием SQL-инъекций в строке запроса. Мой код все испортил, потому что искал такие слова, как "EXEC", "UPDATE", "DELETE" и т. Д. Ну, оказывается, пользователь искал "EXECUTIVE MBA", и мой код нашел "EXEC" в "EXECUTIVE "и забанили их IP.

Поверьте, я не хвастаюсь своим кодом, а просто говорю, что выбор между GET и POST имеет далеко идущие последствия, кроме "хочу ли я, чтобы мои пароли отображались в строке запроса".

0 голосов
/ 21 сентября 2008

GET может быть легче отладить, потому что вы можете отслеживать все отправленные значения в адресной строке без каких-либо дополнительных инструментов. Но есть ограничение макс. длина, поэтому с несколькими переменными вы можете превысить это.

POST не очень безопасен в наши дни, потому что с такими бесплатными инструментами, как Fiddler & co. Вы можете легко получить значения. Но вы не можете подражать длине или количеству значений, которые вы можете отправить таким способом, и ваши URL выглядят более удобными для пользователя.

Таким образом, я рекомендую использовать POST вместо GET.

0 голосов
/ 21 сентября 2008

Оба набора значений легко отслеживаются хакерами или кем-то еще, но GET менее безопасен в том смысле, что его значения очень хорошо видны (прямо в адресной строке).

Используйте SSL для безопасности, если это необходимо.

Хороший совет: всегда используйте POST для форм, используйте строки запросов (? Value = products), когда вы не публикуете что-либо, но пытаетесь получить определенную страницу, например страницу продукта. Отсюда и названия POST и GET:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...