我已经在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>
答案 0 :(得分:0)
我不能说迅捷,但在PHP方面,我会:
1)确保您的应用程序仅通过HTTPS连接与服务器通信(您当前通过不安全/ http连接发送数据)
2)在您的请求中包含唯一的API密钥。密钥可以是应用程序所独有的,也可以是用户独有的(请查看API提供商如何执行此操作,例如Google Maps API)。然后,服务器必须首先评估API密钥,以确定它应如何响应请求。
3)如果您在没有HTTPS的情况下执行此操作,那么监控用户连接的任何人都可以检索已传输的API密钥,然后您将返回到方块1。