Безопасность при раскрытии информации пользователя - PullRequest
3 голосов
/ 08 марта 2012

В настоящее время я создаю сайт электронной коммерции с использованием ASP .Net MVC3. В конце процесса оформления заказа у меня появляется представление, в котором отображается сводная информация о заказе, включая контактные данные клиента (имя, адрес электронной почты, адрес, номер контакта и т. Д.).

Я использую GUID в строке запроса, которая используется для получения информации из БД и отображения ее на странице (например, www.site.com/Checkout/Complete?ID= satelliteGUID}). Считается ли это плохой практикой с точки зрения безопасности? Кто-то должен будет угадать GUID для доступа к любой информации о клиенте, что кажется практически невозможным. Должен ли я пойти на дополнительные усилия по аутентификации пользователя перед отображением информации?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Сам GUID очень сложно угадать или перебор.Существует 125 возможных идентификаторов GUID (не 2 ^ 128), поскольку некоторые биты имеют фиксированное значение ).

Большими проблемами будут

  • МногиеБраузеры предоставляют историю браузера (см. здесь или здесь или здесь ) для не связанных страниц.
  • Если пользователь добавляет закладку на страницу оформления заказа, его специальныеGUID может быть получен из закладок.
  • Атаки «человек посередине» (хотя, вероятно, вы используете SSL на данном этапе, поэтому проблема не возникает).

Если цель состоит в том, чтобы разрешить кому-либо ссылаться на заказ, который он ранее разместил, я бы разрешил GUID предварительно заполнять имя пользователя для удобства, но по-прежнему требовать пароль.

Если это происходит во времяво время сеанса просмотра, и по какой-то причине вам нужен GUID (не можете ли вы сохранить эту информацию в сеансе пользователя?), я бы предпочел создать для этой цели одноразовый GUID, а не показывать уникальный идентификатор пользователя.Сопоставьте одноразовый GUID с фактическим уникальным идентификатором пользователя в коде сервера (может быть соленым хешем реального GUID или может быть отображен в таблице сопоставления).

1 голос
/ 08 марта 2012

Пользователь должен пройти проверку подлинности, а ваш код должен проверить, имеет ли текущий вошедший в систему пользователь доступ к этой информации.

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