Аутентификация в разных поддоменах (но не во всех) - PullRequest
3 голосов
/ 14 июня 2011

У меня есть сайт, настроенный на www.domain.com, сайт может аутентифицировать пользователей и сохранять их учетные данные в файле cookie.

В некоторых случаях пользователи получают доступ к обработчикам, которые настроены на разных серверах на другом сервере.домен.handlers.domain.com

Я не могу позволить себе использовать файлы cookie субдомена с подстановочными символами (файлы cookie не должны быть доступны для других поддоменов)

До сих пор моим решением для контроля доступа был каждый URL, используемый для1009 * был гид, специфичный для пользователя.Обработчики на другом сайте будут принимать личность владельца guid.Это, конечно, не очень хорошая практика безопасности.

Я думал об альтернативном решении: все ссылки на handlers.domain.com на самом деле будут ссылками на скрипт перенаправителя на www.domain.com, который будет перенаправлять на зашифрованное времяштамп с адресом handlers.domain.com, который будет точно знать, что к нему был получен доступ с прямым аутентификационным перенаправлением с www.domain.com.Это решение будет хорошо работать в сценариях GET, но не будет работать с обработчиками, ожидающими данные POST (например, для больших загружаемых файлов)

Кто-нибудь знает или может придумать лучшее решение или иметь какое-либо представление о моем решении?

(В этом случае я использую ASP.NET, но решение, вероятно, будет независимым от платформы, поэтому я буду отмечать это на различных веб-платформах)

Спасибо!

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Поскольку вы не хотите использовать куки-файлы для установления сеанса (группы запросов), вам необходимо найти другие способы. Поскольку информация из файла cookie передается для чтения в HTTP-запросе, я не вижу проблемы, если вы для этого конкретного запроса передаете эту информацию как часть запроса POST.

Если вы предпочитаете GET-запрос, я бы дополнительно добавил флаг в пользовательском сеансе на стороне сервера перед перенаправлением, чтобы дать сценарию, который является местом назначения перенаправления, возможность проверить действительность запроса на сервере. сторона.

0 голосов
/ 14 июня 2011

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

...