2015-05-18 29 views
8
获取信息

所以这里的情况,我有一个具有供用户输入信息到特定的标签,然后创建基于给定信息的用户的URL请求的一部分的iOS应用,并发送这到我的PHP后端。网址如下结构如下:安全发送PHP从iOS版

http://www.somewebsite.com/send.php?title=hello&name=john&contact=email 

现在,上述问题是,任何人谁有权访问的URL,可以很容易地轰击垃圾邮件数据库,太多的意见等,感觉非常不安全。我应该如何使这个过程尽可能安全?

我目前的PHP知识水平能够通过简单地使用“完成工作”的方法来完成任务(不管它们有多安全),但是现在我开始走向了需要牢记安全,安全等。有用的建议/见解将不胜感激。谢谢!

+0

阅读本文http://stackoverflow.com/questions/15273705/security-when-using-rest-api-in-an-iphone-application/15277589#15277589 –

+0

http://stackoverflow.com/questions/14452137/secure-api-for-ios-without-user-account –

+0

您的用户在您的应用(或底层服务器)中是否有帐户?这使得任务更容易。 – halfer

回答

3

确保安全的最佳方法是在OAuth2身份验证层后面锁定服务器端组件(即PHP部分)。我个人建议this OAuth2 Server为此目的。

的一般工作流程将是这样的:

1. Send an API key/username/password/etc to an API endpoint (i.e. a URL) 
2. Get a token, store it in memory for future use 
3. Send this token on subsequent requests 

将该溶液优于发送数据的散列(例如MD5),因为这不验证任何东西。它也解决了潜在的问题,而不是隐藏它(例如POST而不是GET对于保护你的通信没有任何作用)。但是,OAuth2不提供机密性。中间的男人仍然可以看到/改变你的要求。

为了更好地保护您的用户,您应该在您的应用上使用HTTPS(TLSv1.2和PFS)。 独家。甚至连端口80的HTTP服务器都没有做任何比重定向到HTTPS服务器更多的事情。如果iOS支持,也发送HSTSHPKP标题。

如果您需要比HTTPS + OAuth2提供的更好的安全性,我建议learning application security全职,因为如果您对该主题有广泛的了解,更详细和复杂的解决方案才有意义。 (当然,根据您的threat model!)

例如,针对攻击者的逆向工程应用程序来恢复硬编码的API密钥根本就不是它们,这会使您的工作流程变得复杂,并且可能需要验证每个用户。

+1

良好的建议,但了解安全是一个很大的话题。如果OP希望真正的安全聘请域专家。如果OP只对安全的外观感兴趣 - canry-on。 – zaph

+0

非常感谢您的信息。 PHP安全性现在开始在范围内显现出来。您上面概述的内容对于我的目的而言将是充足的。不久之后,我将需要看看几个更先进的tpoics。谢谢。 – Vimzy

+0

@ zaph当然,但我相信安全教育更容易获得对社会来说是件好事。 (如果有人想聘请域名专家,我当然可以通过[我的公司](https://paragonie.com)获得!:P) –

-2

添加一个用户名/密码和密钥对你的参数。制作你自己的组合(如果可能的话加密),然后总是先检查它,这样过程将会最小化。

如果错误的凭据停止进程。