Предположим, что мое приложение имеет токен доступа для какого-либо пользователя в facebook. Есть ли риск безопасности при экспонировании этого токена доступа в JS Code другим пользователям, которые посещают мой сайт? Если да, что они могут с этим делать?
Каковы риски безопасности при экспонировании токена доступа пользователя facebook в javascript?
Ответ 1
Вы рискуете
- Confused vice - ваш код предоставляет привилегии для кода, который может злоупотреблять этими привилегиями либо умышленно, либо действуя от имени еще большего кода, является вредоносным.
- Кража через инъекция кода (XSS) - учетные данные могут быть украдены с помощью кода, введенного на вашу страницу с помощью уязвимости XSS, а затем используются для действовать от имени пользователя, возможно, генерировать журналы, которые обвиняют вас в качестве виновника.
- Кража через подслушивание - если контент, не поддерживающий HTTPS, проходит через соединение между браузером и вашим сервером, то подслушивающее устройство с возможностью чтения пакетов может украсть учетные данные.
- Кража вредоносными программами - если на компьютере пользователя запущено вредоносное ПО, отправка этих учетных данных в браузер предоставляет их этой вредоносной программе. Вероятно, вредоносное ПО должно было прочитать память, принадлежащую процессу браузера, или файлы кэша, написанные браузером.
Ответ 2
Токен доступа к Facebook дает те же права, которые ваше приложение имеет для конкретного пользователя для всех, у кого есть доступ к токену. Итак, если ваше приложение приобретает права на выполнение действий A, B и C и выдается токен для этого, любое другое приложение, которое сможет получить токен, будет иметь одинаковые права для этого пользователя (до тех пор, пока токен не истечет).
Итак, да, есть риск. Вам необходимо защитить токен от доступа к кому-либо/тому, что не должно иметь одинаковых прав для пользователя Facebook, как это делает ваше приложение.
Ответ 3
Этот токен доступа может использоваться кем угодно, чтобы делать что-либо, что имеет доступ к токену доступа. Что делает его мощным, правильно?
Таким образом, разоблачение access_token в javascript действительно зависит от того, где выполняется этот javascript, и над тем, какой тип сети передается токеном доступа.
Если все происходит по https, тогда вы не должны беспокоиться, если устройство, на котором работает javascript, в остальном безопасно (скажем, персональный браузер сотового телефона с блокировкой экрана).
Если устройство, как правило, является общедоступным интернет-терминалом, даже с https, где каждый использует одну и ту же учетную запись пользователя, тогда, если мошенник заглянет через файлы истории в браузере и вытащит этот токен доступа. Плохо плохо плохо.
Если вы общаетесь через http, то он широко открыт для всего мира. Плохо плохо плохо.
Итак, поскольку вы не дали нам никакой информации об окружающей среде, это довольно неопределенные вопросы. Поэтому моя нижняя строка будет не такой расплывчатой. Не делайте этого! Просто позвольте Facebook Javascript SDK обрабатывать access_token для вас.
Ответ 4
Раскрытие токена безопасности может сделать ваши пользователи уязвимыми для получения взломать
Я помню программное обеспечение "FaceNiff", которое работает на корневом телефоне Android, оно обнюхивает маркер безопасности на facebook и других сайтах, и вы можете войти в систему с любой учетной записью пользователя, подключенной к этому WIFI.
В другом программном обеспечении Android имелся недостаток безопасности, позволяющий хакерам нюхать маркер безопасности календаря gmail и получать полный доступ.
Прочитайте это сообщение http://www.techlicious.com/blog/android-security-flaw-could-expose-you-to-data-theft/