У нас есть «виджет», который работает на сторонних веб-сайтах, то есть на всех, кто регистрируется в нашем сервисе и внедряет JavaScript.
На данный момент мы используем JSONP для всего общения. Мы можем безопасно входить в систему и создавать учетные записи с помощью iFrame и некоторой магии с обнаружением событий загрузки на нем. (По сути, мы ждем, пока источник iFrames не укажет обратно на клиентский домен, прежде чем считывать значение успеха из его заголовка).
Поскольку мы работаем на JSONP, мы можем использовать файлы cookie HTTP браузера, чтобы определить, вошел ли пользователь в систему.
Однако мы находимся в процессе перевода нашей системы на работу в реальном времени и через веб-сокеты. У нас по-прежнему будет тот же метод аутентификации, но мы не обязательно будем совершать другие вызовы с использованием JSONP. Вместо этого эти вызовы будут выполняться через веб-сокеты (с использованием библиотеки Faye).
Как я могу обеспечить это? Потенциальные дыры в безопасности возникают, если кто-то скопирует JavaScript с существующего сайта, изменит его, а затем вместо этого заставит людей посетить свой сайт. Я думаю, что это опровергает мою первоначальную идею отправки безопасного токена при входе в систему, поскольку вредоносный JavaScript сможет прочитать его, а затем использовать для выполнения действий с проверкой подлинности.
Лучше ли мне, чтобы мои безопасные действия выполнялись через обычный JSONP, а мои обновления — через WebSockets?