Настоящий вопрос заключается в том, что злоумышленник получает от кражи...
Вы должны сделать все возможное, чтобы защитить секреты, но, в конце концов, высокомотивированный хакер всегда может добраться до него в установленном приложении. Так что это ценность секрета против сложности извлечения.
Значение секрета клиента олицетворяет приложение. Он не дает никакого доступа к пользовательским данным. Однако, поскольку Twitter поддерживает автоматическую выдачу учетных данных для ранее одобренных приложений (их вход в систему с помощью потока Twitter), злоумышленник потенциально может создать веб-приложение с вашим секретом и украсть пользовательские данные с помощью слепого перенаправления.
Проблема с реализацией Twitter заключается в том, что они не спрашивают разработчика о характере приложения. Если бы они это сделали, они бы не выдали вам секрет и заблокировали бы любого, кто создает веб-приложение, используя ваши учетные данные клиента, и крадет данные у пользователей, которые уже одобрили его.
Запутывание — один из вариантов, но слабый. Перемещение секрета на веб-сервер, выступающий в качестве прокси-сервера API, — это другое, но это просто перемещает проблему в другое место, потому что теперь ваше приложение должно проходить аутентификацию на прокси-сервере. Однако этот шаблон может быть достаточно безопасным, если вы требуете, чтобы пользователи входили на ваш сайт (который может использовать для входа через веб-просмотры Twitter). Таким образом, кому-то, кто попытается злоупотребить вашим прокси-сервером, потребуется, чтобы его пользователи открыли учетные записи в вашем сервисе, что не очень привлекательно.
Короче говоря, иди и запутывай его. Это не больно. Рассмотрите возможность использования шаблона прокси. И, возможно, пусть Twitter знает, что их политика безопасности «не очень хороша».
person
Eran Hammer
schedule
20.08.2011