Как сделать междоменную форму CSRF и устойчивой к воспроизведению? - PullRequest
0 голосов
/ 01 мая 2011

Я обдумываю создание проекта, но мне интересно, может ли подделка межсайтовых запросов обезопасить себя?

По сути, я хочу иметь веб-сервис, который генерирует форму с использованиемобычные трюки (JSON-P и iframes) на странице другого домена.Таким образом, WebService.example.com генерирует HTML формы, и он показывается пользователю на User.example.com

Эта форма, я предполагаю, должна будет использовать введенный трюк iframe для отправки формы из JavaScript.Поскольку любой мог бы просто получить те же данные с WebService.example.com, как я могу убедиться, что они на самом деле поступают только с User.example.com?Желательно, чтобы на сервере User.example.com не выполнялся серверный код.

Обратите внимание, что я буду использовать ASP.Net для WebService, но мне хотелось бы, чтобы это было объяснено на языке /рамки агностического характера

1 Ответ

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

Это довольно сложно сделать без использования серверных сценариев в обоих доменах.

Если вы изменили свою архитектуру и просто используете междоменный обмен сообщениями (разместите форму и т. Д. В верхнем домене, используйте для связи iframe)) тогда вы можете использовать XDM, чтобы убедиться, что это действительно тот домен, с которым вы разговариваете.

Если вы ориентируетесь только на браузеры с поддержкой HTML5, тогда используйте postMessage, если вам нужна более широкая поддержка, и такие вещи, какRPC и т. Д. Затем используйте easyXDM , который отвлекает все хлопоты от междоменного обмена сообщениями.

На самом деле, вы можете разместить свою форму в любом документе, вам просто нужно использовать XDM-связьдля успешного «рукопожатия», подтвердив origin.

...