Intereting Posts
Что такое регулярное выражение PHP для преобразования текста, содержащего URL-адрес в гиперссылку? Как получить снимок или миниатюру веб-страницы с помощью PHP? Как я могу получить день определенной даты с PHP Yii Кэширование для контроллера сайта / страниц Параметры динамического выбора php и mysql «Соединение: Keep-Alive» в ответе сервера Внедрение нотации фрагмента питона MySQL db вопросительные знаки вместо еврейских символов ..? Как переименовать загруженный файл, прежде чем сохранять его в каталог? Symfony2 отключает кеш? Как отображать JSON-данные для чтения в Интернете для пользователей в laravel? Set Theory Объединение массивов в PHP Основанное на MySQL веб-приложение: простой способ для пользователей выбрать порядок или элементы? Как отсортировать многомерный XML-файл? Динамически добавлять поля ввода, но поля генерируются внешними php-функциями

Можем ли мы взломать сайт, который просто сохраняет имя пользователя в качестве переменной сеанса?

Я разработал свой сайт, который проверяет, зарегистрирован ли пользователь, и создает переменную сеанса с именем пользователя. Это все, что хранится как переменная сеанса. Если я хочу защитить свои страницы (чтобы их могли видеть только зарегистрированные пользователи), я проверяю, установлена ​​ли переменная сеанса. Это безопасно? Или вы можете дать более безопасный метод?

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

    Я бы рекомендовал, по крайней мере, сохранить IP-адрес и, возможно, также User-Agent, а в случае несоответствия – аннулировать сеанс.

    В принципе, вы в порядке, сохраняя все, что хотите в сеансе. Единственные предостережения:

    • если вы не используете защищенные соединения (например, SSL), sessionId можно понюхать и захватить. Это не имеет значения, поскольку имя пользователя и пароль также могут быть захвачены, и вы подвергаетесь атакам «человек в середине» и т. Д. Таким образом, ваша система в порядке и обеспечивает низкую безопасность без SSL.
    • В статьях на PHP упоминаются некоторые проблемы с общим хостингом и захватом сеанса. Я не уверен, что это правда, поэтому я поставил здесь вопрос. Изменить: эта проблема кажется реальной, поэтому вам придется использовать один из способов обхода сеанса (например, базы данных), если вы используете PHP.

    В целом, однако, большинство упомянутых проблем безопасности (включая атаки XSS) не хранят материал в сеансе, а скорее общие проблемы безопасности. Хранение идентификатора пользователя – или некоторой зашифрованной формы – в сеансе, как правило, достаточно безопасно.

    Самое главное: если бы вы использовали свой собственный алгоритм для генерации случайного кода cookie для каждого пользователя, это, без сомнения, имело бы больше недостатков безопасности (не являясь экспертом), чем алгоритмы генерации ключа сеанса PHP, ASP.NET, Rails , без разницы…

    Я мог бы найти более подходящую цитату Брюса Шнейера, но это будет сделано: «Никто не может дублировать уверенность, которую предлагает RSA после 20-летнего криптоаналитического обзора».