Корректный способ управлять сессиями в PHP?

Я сомневаюсь, что любой из них должен работать. Попробуйте: сначала импортируйте пространство имен в начале кодовой страницы, как показано ниже.

using System.Drawing;

затем в коде.

Button4.BackColor = Color.LawnGreen;

Надеюсь, это поможет.

38
задан daniel 8 June 2009 в 09:34
поделиться

3 ответа

Обновление безопасности : от 2017-10-23: совет в этом ответе, хотя и имеет историческое значение, полностью небезопасен. Никогда не следует использовать md5 для хеширования пароля, потому что его так легко подобрать. См. этот ответ о том, как использовать встроенный password_ * api для хеширования и проверки паролей.


Я уже имел дело с системами входа / аутентификации ранее и обнаружил несколько недостатков в этом методе:

  • вы «md5 его пароль и проверьте базу данных» - это означает, что если человек имеет доступ к базе данных, он может определить, у кого такие же пароли!

ДОПОЛНЕНИЕ (19 сентября 2015 г.) * Посмотрите на эту ссылку . В нем объясняются все основы, подходы, которые вы могли бы использовать, почему вы должны использовать эти подходы, а также дает вам образец кода PHP. Если читать слишком долго, просто пройдите до конца, возьмите код и приступайте!

ЛУЧШИЙ ПОДХОД : для сохранения md5 из имени пользователя + пароля + электронной почты + соли в базе данных, соли является случайным и хранится вместе с записью пользователя.

  • использование uid непосредственно в переменных сеанса может быть очень рискованным. Подумайте вот о чем: мой друг зашел в систему из моего браузера, и он уходит в поисках утечки. Я быстро проверяю, какие файлы cookie установлены в его браузере, и расшифровываю его «uid». Теперь он принадлежит мне!

ЛУЧШИЙ ПОДХОД : генерировать случайный идентификатор сеанса при успешном входе пользователя и сохранять этот идентификатор сеанса в массиве $ _ SESSION [] . Вам также необходимо будет связать sessionid с его uid (используя базу данных или memcached). Преимущества:

  1. Вы даже можете привязать идентификатор сеанса к определенному IP, чтобы нельзя было злоупотреблять идентификатором сеанса, даже если он был захвачен.
  2. Вы можете аннулировать старый идентификатор сеанса, если пользователь входит в систему из другого места. Поэтому, если мой друг входит в систему со своего компьютера, sessionid на моем компьютере автоматически становится недействительным.

РЕДАКТИРОВАТЬ: Я всегда использовал файлы cookie вручную для обработки сеансов. Это помогает мне легче интегрировать компоненты javascript в мои веб-приложения. То же самое может потребоваться в ваших приложениях в будущем.

Это помогает мне легче интегрировать компоненты javascript в мои веб-приложения. То же самое может потребоваться в ваших приложениях в будущем.

Это помогает мне легче интегрировать компоненты javascript в мои веб-приложения. То же самое может потребоваться в ваших приложениях в будущем.

43
ответ дан 27 November 2019 в 03:35
поделиться

В этом нет ничего плохого

isset($_SESSION['uid']);

Данные сеанса не передаются пользователю, они хранятся на сервере (или где-то еще обработчик сеанса сохраняет его). Пользователю передается идентификатор сеанса, который представляет собой случайную строку, сгенерированную PHP, которую, конечно же, можно украсть, потому что она отправляется пользователю.

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

Сейчас мы обсуждаем захват сеанса , вы можете подумать, что можете просто сохранить IP-адрес в сеансе и проверить его с IP-адресом, полученным из запроса, и покончить с этим. Однако часто это не так просто, я недавно сгорел от этого, когда в большом веб-приложении мы сохраняли хэш User Agent + IP-адрес в сеансе, а затем проверяли, совпадают ли они в каждом случае для 99% пользователей. это сработало нормально. Однако мы начали получать звонки от людей, которые обнаруживали, что они постоянно выходят из системы без каких-либо объяснений. Мы включили регистрацию проверок захвата сеанса, чтобы увидеть, что происходит, и обнаружили, что эти люди будут заходить на один IP-адрес, а их сеанс будет продолжаться на другом, это не была попытка взлома, но это было связано с тем, как их прокси-сервер работал,

26
ответ дан 27 November 2019 в 03:35
поделиться

Я не на 100% в этом, но я думаю, что можно создать сеанс, если кто-то действительно хотел!

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

Я немного изучил это недавно, но опять же я не уверен, мне интересно услышать, что лучше всего !

Вот несколько ресурсов, на которых стоит посмотреть

http://www.sitepoint.com/article/php-security-blunders/

http://www.phpeasystep.com/workshopview.php? id = 6

-3
ответ дан 27 November 2019 в 03:35
поделиться
Другие вопросы по тегам:

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