Как отправить форму HTML в другой домен с аутентификацией - PullRequest
3 голосов
/ 26 мая 2011

У меня есть сайт в Домене A, на котором есть страница с HTML-формой, в которую пользователь может ввести строку, которая отправляется в Домен B.

Форма в настоящее время содержит скрытое поле ввода с именем / значением, которое Домен B использует для «аутентификации» / идентификации Домена A.

Теперь я в основном программист на C # с минимальным веб-опытом, и даже я знаю, что это не безопасный способ сделать это.

Каков наилучший способ безопасной отправки формы в домене A в домен B?

Некоторые способы, которые я рассмотрел:

Домен B должен идентифицировать домен A по имени домена или IP-адресу. Я полагаю, это было бы лучше, чем скрытое поле ввода, но доменное имя и IP-адрес могли быть подделаны, правильно?

Иметь домен A передавать учетные данные для аутентификации (например, user / pass) в домен B другим способом, кроме скрытого поля. Не уверен как.

Редактировать

Другая возможность: создать закрытый / открытый ключ. Попросите, чтобы домен A передал закрытый ключ в домен B, который проверяет, используя открытый ключ, возможно, через HTTPS. Не уверен, как домен А передаст закрытый ключ, не раскрывая его в HTML. Идеи?

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Скрытый ввод со значением для аутентификации пользователя МОЖЕТ быть безопасным методом в зависимости от того, что является значением и как оно генерируется. Домен A может сделать AJAX-запрос к домену B с запросом токена, который необходимо отправить вместе с формой.

Этот токен должен приниматься доменом B только один раз, а также должен истекать через некоторое время.

Наконец, вы также можете отправить идентификатор пользователя. Это должно быть каким-то образом зашифровано для передачи. Я бы предложил либо HMAC , либо шифрование с открытым ключом .

Вариант 2: использовать OpenID ;)

1 голос
/ 26 мая 2011

Я делал нечто подобное в прошлом. Этот метод не одобряется большинством, но он сработал для меня:

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

Затем, когда вы запустите свое приложение в Домене A от имени этого пользователя, оно будет использовать сквозную аутентификацию для аутентификации в Домене B. Вам просто нужно убедиться, что учетная запись пользователя имеет правильные права доступа в обоих доменах.

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