Осуществление Аутентификации Facebook: Клиентская и серверная сторона

Я создаю приложение социальных сетей в Flash (AS3), который тесно интегрируется с Facebook - все учетные записи пользователей обрабатываются через подключение Facebook, и вся возможность соединения Facebook обрабатывается через комбинацию JavaScript и API AS3 Facebook. Я использую Codeigniter на бэкенде для управления данными серверной стороны, которое включает пользовательские действия отслеживания и данные по сайту через URLRequests от Flash.

Моя проблема состоит в том, что я не знаю, как предотвратить спуфинг запросов к серверу, которые сделаны из Flash; в теории злонамеренные пользователи могли отследить вызовы, которые Flash выполняет к моему серверу, и воспроизведите их способом, который (например), вставляет данные мусора и связывает их с данным идентификатором пользователя Facebook в моей базе данных. Вся аутентификация происходит на стороне клиента (через JS Facebook API) без вмешательства сервера, таким образом, мне нелегко выяснять точно, как защитить вызовы между Flash и сервером способом, который гарантирует, чтобы пользователи аутентифицировались с Facebook для создания их.

Одна возможность, которую я рассмотрел, использует схему шифрования, которая, как известен клиент и сервер, передала Facebook UIDs назад и вперед, который, конечно, был бы лучше, чем передача их в ясном. Однако только потребовался бы один инициативный хакер с достаточным количеством времени/терпения, чтобы повредить схему (или декомпилировать swf) для завинчивания всего.

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

7
задан justinbach 4 August 2010 в 13:06
поделиться

1 ответ

Это законное беспокойство, поскольку вы нарушаете CWE-603: Использование аутентификации на стороне клиента . Шифрование не может помочь этой станции, потому что злонамеренный клиент сможет получить любой секрет.

Наилучший подход для проверки клиента - это заставить флэш-приложение отправлять информацию о сеансе обратно на сервер. Затем сервер должен снова подключиться к facebook, используя что-то вроде php api , чтобы сервер мог проверить, что у клиента есть действительный сеанс с facebook. Это следует делать один раз за вход в систему, а затем вы можете выдать идентификатор сеанса (файл cookie) для флэш-приложения, чтобы получить доступ к вашему хранилищу данных для этого пользователя.

1
ответ дан 7 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: