Разве неправильно использовать $ _REQUEST для Данных?

Так, я кодировал для немного (2 года), и у меня есть очень субъективный вопрос:

Разве неправильно использовать $ _REQUEST для Данных?

Это главным образом принадлежит аутентификации между прочим.

Если Вы думаете об этих 3 путях, данные могут произойти в $_REQUEST, это может прибыть или из cookie, формы или из строки запроса. Теперь, я знаю, что большинство людей непосредственно захватывает информацию от также $_POST или $_GET, использование $_COOKIE только, когда они ожидают cookie.

Моя теория состоит в том, что в действительности, не должно быть никакого различия в этих данных, и это не должно иметь никакого значения, если бы Вы заменили $_POST или $_GET с $_REQUEST.

Если Вы аутентифицируете пользователя в систему, делает действительно имело значение, если детали аутентификации содержатся в $_POST или $_GET массив? Heck, вероятно, не должно иметь значения, если они находятся в $_COOKIE также. Они все еще дают Вам учетные данные для вхождения в сайт, который необходимо проверить на правильность, и раз так регистрировать их в.

Теперь, я действительно понимаю, что существуют проблемы безопасности, при попытке иметь форму входа в систему, которая отправляет данные через строку запроса, но я не полагаю, что это принадлежит вопросу. Кроме того, если кто-то приводит вход в систему к сбою слишком много раз, там должен существовать надлежащий предельный набор, чтобы не перегружать сервер.

Я хотел бы к здесь мнению об этом.

Общественный Wiki'd в придачу.


О, и просто между прочим, вот другие вопросы о StackOverflow, которые имеют отношение, если у Вас есть другие вопросы о $_REQUEST

Почему я должен использовать $ _GET и $ _POST вместо $ _REQUEST? Когда и почему должен $ _REQUEST использоваться вместо $ _GET / $ _POST / $ _COOKIE?

5
задан 4 revs, 2 users 62% 23 May 2017 в 12:30
поделиться

5 ответов

В "хорошей" практике кодирования вы хотите устранить неоднозначность как можно больше.

Поскольку $ _REQUEST по умолчанию содержит данные из $ _POST, $ _GET и $ _COOKIE, значение, содержащееся в переменной, которая хранит данные, полученные с помощью $ _REQUEST, будет неоднозначным относительно того, какие

Если мы будем более конкретными, это улучшит читаемость кода, а также понимание логики и поможет отладке в будущем.

(Не говоря уже о проблемах безопасности, касающихся каждого метода, особенно $ _GET один)

14
ответ дан 18 December 2019 в 09:50
поделиться

Я бы сказал, избегайте всего этого вместе. Я согласен с Севом в том, что устранение неоднозначности важно по многим причинам (отладка, ясность / самодокументирование, элегантность и т. Д.), Но могут возникнуть серьезные проблемы с безопасностью, и это была бы моя основная причина избегать этого.

В качестве простого примера, что происходит, когда один и тот же ключ отправляется в двух массивах (например, $ _ POST ['criticalInfo'] и ] $ _ GET ['criticalInfo'] )? Как и в случае с большинством проблем безопасности, уязвимости проявляются в индивидуальной реализации, поэтому было бы невозможно угадать ваши конкретные риски. Дело в том, что двусмысленность часто открывает дыры.

3
ответ дан 18 December 2019 в 09:50
поделиться

Не оставляйте на усмотрение "variables_order" в PHP_INI, чтобы определить, откуда ваш скрипт получает переменные. Используйте $ _GET, $ _POST и т. Д.

0
ответ дан 18 December 2019 в 09:50
поделиться

Это неверно ? Нет.

Он хуже $ _ GET или $ _ POST ? Да. Используйте правильный массив, и вы избежите всевозможных проблем, связанных с незнанием, откуда взялось содержимое массива $ _ REQUEST .

0
ответ дан 18 December 2019 в 09:50
поделиться

Речь также идет о том, чтобы учетные данные не приходили никаким другим способом, кроме запроса POST. Я бы не хотел, чтобы мой запрос GET имел побочные эффекты (например, вход в систему пользователя).

0
ответ дан 18 December 2019 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: