Ari*_*osh 22 php mysql sqlite iphone ios
我在浏览MySQL和SQLite之后选择了MySQL进行访问,因为我的iPhone应用程序需要从已经在MySQL中的在线数据库中提取信息.
我相信访问信息的传统方式是:在服务器上有一个php文件,为你进行访问.
iPhone应用程序将调用此php文件,它将返回结果.
iOS应用程序将调用http://somewebsite.com/index.php?id=234,该网站将打印出id = 234的用户名.

现在,这个过程有多安全?......我显然会使用预备语句和https.但是,如果有人找到了这个网站的URL呢?如何保护自己免受滥用(有人可以生成我所有用户的列表)?这是让您的iPhone应用程序连接并从数据库获取信息的标准方法吗?
编辑:此外,假设我需要创建一个应用程序登录页面...我有一个带有用户名和密码的MySQL数据库(显然是哈希).使用$ _GET变量来查看它们是否经过身份验证是否安全?例如:https://somewebsite.com/checkauth.php?username = test&password = C3LyiJvTCQ14Q并打开php是或否.图片示例如下:

我认为上述方法不安全......但我需要开悟.
此外,我宁愿远离使用第三方API在应用程序内调用数据库,Apple不支持.
Sam*_*amV 20
解决此问题的最佳方法是设置API以与服务器上的数据库进行交互,并且您的iPhone应用程序只需查询API并以机器可读格式返回数据,例如JSON,请参阅http://en.wikipedia.org/wiki/JSON和http://json.org/.因此,对于用户登录,服务器可能会返回如下内容:
{
"result": false,
"error": "Invalid username or password"
}
Run Code Online (Sandbox Code Playgroud)
这将由PHP生成,代码如下:
echo json_encode(array(
"result" => false,
"error" => "Invalid username or password"
));
Run Code Online (Sandbox Code Playgroud)
另请注意,您应该将HTTP响应代码与此结合使用,例如401用于未经授权.
JSON可以在其格式中使用布尔和其他数据结构.几乎所有主要语言都有支持/库.
这样做的好处是它允许您使用相同的API(如Android版本或实际网站)构建其他应用程序.
这SO问题是关于移动应用的安全性一个很好的起点:
要点是确保使用HTTPS.通过用户凭据发送时,您可以返回用户令牌(api密钥),该用户令牌可用于将来的请求并存储在iPhone应用程序中以供将来访问.
例如: https://iphoneapp.com/notifications.json?key=98fy92473r92hAAIYEFG397qbqwiuUEAF
您的密钥应该在HTTP标头或POST中发送,因此它不会记录在日志等中......
注意:这只是在键盘上键入的随机字符串.
此方法允许您在密钥泄露时删除/重新生成密钥.您还可以设置键的速率限制和各种其他参数.
另一个巨大的好处是通过构建自己的应用程序使用的API意味着它将保持高标准,而其他第三方公司也可以使用API(如果您允许).
编辑:此外,假设我需要创建一个应用程序登录页面...我有一个带有用户名和密码的MySQL数据库(显然是哈希).使用$ _GET变量来查看它们是否经过身份验证是否安全?例如:https: //somewebsite.com/checkauth.php?username = test&password = C3LyiJvTCQ14Q
您应该使用POST发送敏感数据,但任何服务都必须在某个时候登录.使用HTTPS应该最有帮助,因为它可以防止窃听.在第一次身份验证后,您可以返回令牌并获得上述优势.
至于用户登录,因为您的PHP符合良好实践,您应该没有问题.如果您有任何疑问,请访问http://www.phptherightway.com/.
绝对研究OAuth,如果你愿意,可以利用它.
这只是一个起点,并不是逐字逐句使用,需要进一步阅读和谷歌搜索.
| 归档时间: |
|
| 查看次数: |
9940 次 |
| 最近记录: |