2017-02-22 12 views
0

Я создал мое первое приложение для iOS в Swift, но я обеспокоен тем, что он активно открыт для проблем безопасности.Как защитить приложение iOS, чтобы API-вызовы не могли быть выполнены через веб-браузер?

Когда мое приложение делает вызов API и запрос JSON он делает это следующим образом:

let myUrl = URL(string: "http://www.wyz.co.uk/xyz/myScript.php?"); 
    var request = URLRequest(url:myUrl!); 
    request.httpMethod = "POST"; 

    let postString = "community_id=\(comIds[communityId!])&user_id=\(playerId!)&email=\(email!)"; 

    request.httpBody = postString.data(using: String.Encoding.utf8); 

    let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in 

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

Как мне сделать безопасным приложение для предотвращения любых потенциальных утечек и т. Д.? Например, в какой-то момент он ошибся и рассказал подробности подключения для моей базы данных, включая пароль! Нехорошо!

ответ

0

Я не могу говорить за быстрым, но на стороне PHP, я бы:

1) Убедитесь, что приложение взаимодействует только с сервером через соединение HTTPS (вы отправляете данные через небезопасные/http-соединение в настоящее время)

2) Включите уникальный ключ API с вашим запросом. Ключ может быть уникальным для приложения или уникальным для пользователя (посмотрите, как это делают поставщики API, API Карт Google). Затем серверу придется сначала оценить API-ключ, чтобы определить, как он должен реагировать на запрос.

3) Если вы сделаете это без HTTPS, то любой мониторинг соединения пользователи могут получить ключ API, который был передан, и вы вернулись к 1.

+0

Благодаря Лукас, что действительно полезно - я не знаю, когда начать – RDowns