2010-01-31 4 views
4

Я пишу веб-приложение, которое позволяет зарегистрировать кого-либо (используя их OpenID). Когда пользователь регистрируется, их OpenID сохраняется в базе данных MySQL.Как безопасно хранить OpenID пользователя

Мой вопрос: В каком формате следует хранить значение OpenID пользователя?

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

+0

Почему бы вам не зашифровать URL-адрес, вам все равно будет предложено предоставить ваши данные аутентификации? – Pentium10

+0

Это хороший момент! Почему-то у меня в голове, что знание OpenID может обойти это ... Дух! – Jon

ответ

10

Там нет никакой реальной пользы в защите их открытый идентификатор: это вся суть!

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

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

+0

Спасибо, что нашли время ответить. – Jon

+0

Тебе очень рады, Джон! :) –

+0

FWIW, есть возможность скрыть открытый идентификатор. Это не значит, что он должен быть хэширован в базе данных (это немного экстравагантно), но его нельзя считать «общедоступной» информацией, которую вы свободно показываете на веб-сайте (например, на этом веб-сайте. Вы не можете определить мой OpenID от него). –

0
 
In which format should I be storing a user's OpenID value? 

Даже если кто-то имеет доступ к OpenId, хранящимся в базе данных, эта информация будет бесполезны для него, как это только URL, который запрашивает деталь аутентификации пользователя при выполнении.

Так что вам не о чем беспокоиться.

Поставщики openid позаботятся об этом, если введенные данные верны или нет.