如何保护我的iOS应用程序,以便无法通过Web浏览器进行API调用?

时间:2017-02-22 14:40:00

标签: php ios json

我已经在Swift中构建了我的第一个iOS应用程序,但我担心这会对安全问题大加开放。

当我的应用程序进行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

正如你所看到的,目前没有什么可以阻止任何人直接将字符串发布到Web浏览器(就像我自己在测试我的JSON时所做的那样)并调用数据库并可能造成损坏。

我现在如何确保我的应用程序安全,以防止任何潜在的泄漏等?例如,有一次它出错并提出了我的数据库的连接细节,包括密码!不好!<​​/ p>

1 个答案:

答案 0 :(得分:0)

我不能说迅捷,但在PHP方面,我会:

1)确保您的应用程序仅通过HTTPS连接与服务器通信(您当前通过不安全/ http连接发送数据)

2)在您的请求中包含唯一的API密钥。密钥可以是应用程序所独有的,也可以是用户独有的(请查看API提供商如何执行此操作,例如Google Maps API)。然后,服务器必须首先评估API密钥,以确定它应如何响应请求。

3)如果您在没有HTTPS的情况下执行此操作,那么监控用户连接的任何人都可以检索已传输的API密钥,然后您将返回到方块1。