Подтвердить что ты не робот

Можно ли безопасно хранить сеансы?

Я хотел бы использовать хранилище сеансов для запроса пользовательских данных в базе данных только один раз, а затем просто использовать JS для его получения, поэтому я думаю об использовании хранилища сеансов. Мой вопрос следующий, это безопасно?

Обратите внимание:

1. JS не может быть вставлен на страницы с формами (формы принимают только буквенно-цифровые значения), поэтому он может появляться только из URL

1.1 Строки запроса, такие как www.website.com/?q=blablabla, не используются в php (php не извлекает данные из URL-адреса)

1.2 Вызов js в URL-адресе с помощью javascript: script... не вызывает большого беспокойства, поскольку пользователь может только получить свои собственные данные, не говоря уже о том, что он уже имеет к нему доступ - что точка пользовательских данных

1.3 Есть ли третий способ перенаправления пользователя на сайт по ссылке, содержащей JS, которая будет иметь доступ к хранилищу сеансов? i.: somthing like - www.website.com/ script...

Я предполагаю, что только что-то вроде 1.3 будет представлять угрозу (в дополнение к этому, я что-то упускаю?), но существует ли это вообще? И если есть способ предотвратить это?

Спасибо за ваше время и ответы.

4b9b3361

Ответ 1

В основном вы полагаетесь на две вещи для безопасности хранения сеанса:

  1. Браузер ограничивает доступ только к javascript на странице из этого домена
  2. javascript, который работает на странице для обеспечения безопасности

    Теперь нет многого, что вы можете сделать по поводу № 1, потому что проблема с продавцом и, не указывая ни на кого, в частности, но most из них, как правило, довольно хороши в таких вещах,

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

    Однако, № 2 сложнее, вам придется самостоятельно оценить, насколько безопасна ваша страница для атак script, там есть много документации по лучшим практикам, но вы можете продолжать в течение нескольких дней. Вам действительно нужно судить, насколько чувствительны данные по сравнению с тем, как много работы и возможной потери функций, которые он должен был бы защитить от этого.

    Если это действительно чувствительные данные, я бы поставил под вопрос, почему вы рискуете полностью сохранить его на клиентской стороне и получить доступ только через HTTPS. Но вы должны быть защищены для большинства сценариев, потому что, если запущен сторонний javascript, cookie сеанса для захвата, и поэтому безопасность вашего сервера также скомпрометирована.

Ответ 2

Поскольку хранилище сеансов может быть прочитано только JavaScript, который работает на вашей странице, я думаю, что ваш вопрос сводится к "Как JavaScript может быть исключен/вставлен на мою страницу?" Существует два метода атаки: XSS, означает некоторый способ добавить JavaScript на вашу страницу, разместив данные на своем сайте. Если эти данные не фильтруются, он может вставить теги script или события JavaScript в ваш HTML. Есть много способов сделать это и защитить от него, поэтому я не могу быть более конкретным.

Менее опасным было бы обмануть сайт для отображения или изменения информации с помощью специально созданных ссылок, которые вызывают конкретные действия на вашей странице. Этот метод называется CSRF. Пример: кто-то создает ссылку на страницу "изменить адрес электронной почты" и обманывает пользователя, который зарегистрировался при нажатии этой ссылки, что меняет информацию электронной почты в хранилище сеансов.

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