Стоит ли скрывать / запутывать соединения с сервером в приложении для iPhone? Если так, то как? - PullRequest
0 голосов
/ 10 мая 2010

Если у меня есть приложение, которое подключается к сервису Amazon S3, стоит ли мне тратить время на то, чтобы скрыть / скрыть строки подключения и ключи API? Я предполагаю, что большинству хакеров все равно будет безразлично, но будет финансово больно, если кто-то найдет эту информацию и сможет загрузить данные в мой аккаунт!

Например, если я сохраню имя пользователя / пароль (или ключ и секрет API Twitter / Facebook), их можно легко найти с помощью «строк». Хакер мог видеть функционал, захватывать секреты и использовать их в гнусных целях. Я видел, как люди предлагают использовать простой Rot13, или хранить строки в обратном направлении или что-то подобное в двоичном приложении. Это полезно?

Кто-нибудь делал это или есть какие-либо идеи / шаблоны / код для обмена?

-дан

Ответы [ 3 ]

2 голосов
/ 10 мая 2010

Вы можете скрыть свои секреты на веб-сервере, которым вы полностью контролируете, и затем этот сервер передает запрос в Amazon. Затем вы можете использовать любой метод шифрования / проверки, который вам нравится, поскольку вы не полагаетесь на то, что поддерживается Amazon.

После того, как вы подтвердите, что запрос поступил от вашего собственного приложения, вы затем переписываете запрос, включающий ваши секреты, и затем отправляете его в Amazon. Результат от Amazon может быть затем передан обратно в приложение.

В php это может быть сделано, например, с использованием чего-то похожего на этот фрагмент (без отображения перезаписи URL):

$fp = fopen($amazon_url,'r',false);
fpassthru($fp);
fclose($fp);
0 голосов
/ 10 мая 2010

Я предполагаю, что большинство хакеров не все равно много

Требуется только тот, кому достаточно скучно.

Кто-нибудь сделал это или есть идеи / шаблоны / код для обмена?

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

0 голосов
/ 10 мая 2010

Вам действительно не нужно скрывать их ... вам нужно иметь дополнительный ключ, такой как секрет, который скрыт и присутствует только в подписи вызова (который может быть хешем MD5 или sha (или что бы то ни было)) без этого секретного ключа люди не смогут просто звонить, поскольку подписи, созданные сервером и нарушителем, не будут совпадать, поскольку они не знают, какой секретный ключ используется ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...