у меня есть форма входа в систему, которая находится в login.php. после авторизации i moove клиент в some.php файл! таким образом, из следующих двух методов, который лучше?
id
e.t.c GET
SESSION
- s для этогочто более предпочтено?
и два слова о том, почему я задаю этот вопрос. я слышу где-нибудь это SESSION
s не являются хорошим методом программирования, и не предлагается использовать их в таких ситуациях...
спасибо
Сессии действительно являются предпочтительным решением. Вы не можете доверять данным, отправленным в строке запроса ($ _GET, $ _POST, $ _COOKIE и т. Д.), Потому что все они могут быть изменены пользователем, но вы можете доверять тому, что никто не подделывал данные _SESSION $ _SESSION, поскольку _SESSION $ хранится на сервере.
Если я правильно понимаю вопрос, то нет. Вместо этого используйте POST
, а затем создайте SESSION
после входа в систему.
Допустим, пользователь заходит на index.php
, где находится форма входа. Он вводит информацию и нажимает «логин». Вы отправляете данные на login.php
, используя POST
. Если имя пользователя, пароль и другая информация верны, вы создаете SESSION
и перенаправляете пользователя в другое место.
Я бы использовал SESSION, если вы хотите сохранить некоторую информацию, основанную на успешной аутентификации. Данные в переменных GET, POST слишком легко манипулировать.
Если вам приходится выбирать между $_SESSION и $_GET, то для безопасных вещей используйте $_SESSION. Все, что пользователь может сделать с сессиями, это уничтожить их (удалив куки PHPSESSID), но пользователь не может манипулировать ими.
Если вам нужно передать информацию один раз, то $_SESSION очень хорош. Вы можете хранить некоторые данные в переменной $_SESSION, менять их расположение через PHP (чтобы пользователь не мог заблокировать скрипт путем отключения JavaScript. Просто используйте header('Location: '.$path);
), использовать содержимое $_SESSION на другой странице, и у пользователя не будет промежутка времени, когда он может уничтожить сессию. Это безопасно.
Самым безопасным способом было бы использование SESSIONS, потому что это означает, что только токен|идентификатор хранится на стороне клиента, а все данные, представленные токеном|идентификатором, хранятся на сервере. Кроме того, вы можете установить время истечения для сессий, что сделает их более безопасными.
$_SESSION
может иметь свои недостатки, но использование $_GET
для такого рода вещей еще хуже.
В сеансах нет ничего плохого. Фактически, в этой ситуации я бы хранил идентификатор пользователя в сеансе, а не передавал его в URL-адресе. Это будет намного чище и профессиональнее, ИМХО. Хранение тривиальной информации в сеансе — это нормально.