Максимальная длина openID - PullRequest
       18

Максимальная длина openID

17 голосов
/ 16 апреля 2009

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

Кроме того, полезно ли использовать openid в качестве имени пользователя (рекомендации)?

Ответы [ 5 ]

15 голосов
/ 23 декабря 2009

В соответствии со спецификацией для OpenId 1.1, максимальный предел для URL-адресов идентификаторов составляет 255 байтов. См. OpenId 1.1, Приложение D: Ограничения . Поставщик удостоверений и URL-адреса return_to могут содержать не более 2047 байт.

Обратите внимание, что этот раздел по ограничениям был удален из спецификации OpenId 2.0. Так что неясно, какая максимальная длина сейчас.

7 голосов
/ 16 апреля 2009

OpenID - это URI, поэтому вы ограничены максимальной длиной URI. Насколько я знаю, ограничения нет, но некоторые браузеры (например, Internet Explorer) имеют ограничение.

Дополнительная литература:

http://openid.net/pipermail/general/2008-August/005305.html

3 голосов
/ 16 апреля 2009

Я бы не использовал OpenID напрямую в качестве имени пользователя. Просто посмотрите на URL-адреса OpenID, которые Yahoo предоставляет пользователям, они непостижимы. Разрешить пользователям выбирать свое собственное имя пользователя и в идеале разрешить привязку нескольких URL-адресов OpenID к одной учетной записи пользователя (как это делает переполнение стека).

1 голос
/ 19 апреля 2009

Вы не должны принимать URL-адреса OpenID, длина которых превышает 255. Хотя это возможно, многие могут использовать это в качестве вектора атаки для реализации таких вещей, как SQL-инъекция. Взгляните на API-интерфейсы OWASP AntiSAMY в качестве дополнительной защиты.

1 голос
/ 16 апреля 2009

В версии 2.0 спецификации нет официальной длины.

Вы можете хешировать предоставленный URL во что-то уникальное (md5 или какой-либо другой повторяемый хеш) и сохранить его в своей БД в виде более короткой строки.

Что касается использования его в качестве имени пользователя, большой URL это не красиво. Вы можете извлечь имя пользователя из ответов (таким образом, мое имя пользователя получено непосредственно из моего OpenID)

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