Безопасность виджетов - PullRequest
       7

Безопасность виджетов

5 голосов
/ 25 марта 2011

Я работаю над виджетом JavaScript, который позволит пользователям подписываться на список. Этот виджет будет встраиваться на сайтах клиентов. Поскольку все это на стороне клиента, за исключением запросов обратно на сервер. Я пытался придумать способы сделать виджет «безопасным», чтобы ограничить загрузку виджета только на одобренных сайтах

Похоже, что Карты Google могут использовать предоставленный вам ключ для просмотра сайта, загружающего карту. Что-то на этот счет было бы идеально.

Дизайн виджета: Javascript вставляет HTML в DOM. Также добавляет элемент iframe. Iframe загружает форму с моего сайта для обработки запросов. Ключ передается в iframe URL для загрузки настроек формы.

На самом деле не ищу код, псевдокод идеален, просто потерян на технике.

1 Ответ

0 голосов
/ 25 марта 2011

Ваш веб-сервер будет обслуживать виджеты с помощью запроса GET и будет ожидать передачи параметра key=xyz.Ваш сервер проверит правильность ключа перед возвратом ответа виджета.

Проблема в том, что клиент должен будет отправить ключ из JavaScript на клиентской машине .Поэтому все клиенты вашего клиента будут знать ключ клиента.Это означает, что неразумно ожидать, что ваши клиенты хранят свои ключи в секрете.

Я считаю, что Карты Google связывают каждый ключ с доменом.Если вы встраиваете виджеты в iframe, у вас должна быть возможность проверить заголовок Referer , чтобы убедиться, что этот запрос действительно поступает с веб-сайта клиента, а не с какого-либо другого веб-сайта, который украл ключ клиента.

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

...