2015-07-15 5 views
4

Этот blog post от Rizwan Sattar описывает, как использовать SFSafariViewController для входа пользователя в ваше приложение. Он объясняет, что это возможно, потому что SFSafariViewController использует файлы cookie с Safari.app. Для меня кажется, что разработчик сможет определить, на каких сайтах зарегистрирован пользователь, тем самым утечка данных. Я предполагаю, что вам нужно будет передать сайту закрытый ключ, чтобы он знал, к какой схеме URL-адреса приложения нужно перенаправить. Это правда?Устраняет ли SFSafariViewController данные пользователя?

ответ

4

SFSafariViewController не попадала пользовательских данных - приложение не имеет доступа к WebView, печенье и т.д.

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

+3

Rizwan Sattar здесь. Эндрю М. правильно. SFSafariViewController запускается вне процесса, и невозможно экранировать мои данные для любого веб-сайта. Кроме того, на сайте должен быть собственный код, который фактически будет генерировать логин входа и перенаправлять обратно в приложение. В своем сообщении в блоге я демонстрирую эту работу с зарегистрированной схемой URL, но в идеале вы также будете использовать универсальные ссылки для приложений iOS 9, чтобы никто другой не мог захватить ответ. –

1

В то время как Andrew M является правильным, что SFSafariViewController не пропускает данные в буквальном смысле (вы не можете получить доступ к данным, экрану и т. Д.), Вы правы, что вы можете потенциально вывести информацию о сеансах пользователя, используя его , Являются ли это серьезная утечка спорна, но вы можете использовать его для таких вещей, как определить, если они установлены конкретное приложение.

Например, существует некоторое довольно неряшливое приложение с его собственной схемой URI, sleaze://. Я знаю, что если я открою SFSafariViewController со своим сайтом, и пользователь уже войдет в систему, они перенаправят обратно в свое приложение. Поэтому, если я открою свой веб-URL и сразу же найду свое приложение, я могу предположить, что они являются пользователями этого приложения.

Теперь, это тонкий, или что-то, чего пользователь не понимает, очевидно, ошибочен? Нет, очевидно, нет. Возможно, это не идеальный пример «вооруженной» версии этого, но я думаю, что это то же самое, что вы думали.

+0

Я бы хотел, если бы вам нужно было украсть секретный ключ приложения sleazy (не невозможно), чтобы это работало так, как вы это делаете. –

+1

Зависит от реализации сайта. Если сайт автоматически перенаправляется для любого зарегистрированного пользователя, он будет работать без него. Если они делают это только при входе в систему и с помощью ключа, тогда вы правы. Как я уже сказал, не может быть идеальным примером, но, безусловно, можно злоупотреблять. – shortstuffsushi

0

Я полностью согласен с «Steve Moser». Например: если я использую пару приложений, которые проходят проверку подлинности на одном и том же сервере (в случае использования SSO), теперь с помощью SFSafariViewController можно передавать cookie и проходить проверку подлинности. Но приложение-мошенник, сидящее на том же устройстве, также сможет получить доступ к этому файлу cookie с помощью SFSafariViewContorller и может получить действительный сеанс.

Смежные вопросы