получить или сеанс? - PullRequest
       8

получить или сеанс?

7 голосов
/ 19 мая 2010

У меня есть форма входа, которая находится в login.php. после авторизации я перевожу клиента в файл some.php! Итак, из следующих двух методов, что лучше?

  1. Я могу отправить информацию пользователю id e.t.c GET
  2. я могу использовать SESSION - s для этого

что предпочтительнее?

и два слова о том, почему я задаю этот вопрос. Я где-то слышал, что SESSION не очень хороший метод программирования, и не рекомендуется использовать их в таких ситуациях ...

спасибо

Ответы [ 8 ]

7 голосов
/ 19 мая 2010

Сессии действительно являются предпочтительным решением. Вы не можете доверять данным, отправленным в строке запроса ($ _GET, $ _POST, $ _COOKIE и т. Д.), Потому что все они могут быть изменены пользователем, но вы можете доверять тому, что никто не вмешивался в данные $ _SESSION, поскольку $ _SESSION хранится на сервере.

1 голос
/ 19 мая 2010

Если я правильно понял вопрос, то нет. Вместо этого используйте POST, а затем создайте SESSION при входе в систему.

Допустим, пользователь заходит на index.php, где находится форма входа. Он заполняет информацию и нажимает «Войти». Вы отправляете данные на login.php, используя POST. Если имя пользователя, пароль и любая другая информация верны, вы создаете SESSION и перенаправляете пользователя в другое место.

1 голос
/ 19 мая 2010

$_SESSION может иметь свои недостатки, но использование $_GET для такого рода вещей еще хуже.

1 голос
/ 19 мая 2010

Нет ничего плохого в сессиях. На самом деле, в этой ситуации я бы сохранял идентификатор пользователя в сеансе, а не передавал его по URL. Это будет намного чище и профессиональнее, ИМХО. Хранить тривиальную информацию в сеансе хорошо.

0 голосов
/ 25 августа 2011

SESSION - лучшее решение. Что делает его более безопасным. Пользователь не может изменить любые свои данные

0 голосов
/ 19 мая 2010

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

0 голосов
/ 19 мая 2010

Если вам нужно выбрать между $ _SESSION и $ _GET, то для обеспечения безопасности используйте $ _SESSION. Все, что пользователь может делать с сессиями, это уничтожать их (удаляя файл cookie PHPSESSID), но пользователь не может ими манипулировать.

Если вам нужно передать информацию один раз, $ _SESSION очень хорош. Вы можете сохранить некоторые данные в переменную $ _SESSION, изменить местоположение с помощью PHP (чтобы пользователь не мог заблокировать скрипт с помощью отключения JavaScript. Просто используйте header('Location: '.$path);), используйте содержимое $ _SESSION на другой странице, и пользователь не сможет есть интервал времени, когда он может уничтожить сеанс. Это безопасно.

0 голосов
/ 19 мая 2010

Я бы использовал SESSION, если вы хотите сохранить некоторую информацию, которая основана на успешной аутентификации. Данные в переменных GET, POST слишком легко манипулировать.

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