安全访问PHP API(Securing access to PHP API)

2019-09-19 03:59发布

我有一个在服务器上使用我的PHP API的iPhone应用程序,但如果有人知道的URL是当前打开的。 我想确保,直到我已经准备好,使之成为公共的API(如果我连做),没有人可以使用这个API

我已阅读这篇文章 ,但我不确定时,他们说他们的意思:

[客户端]使得REST API调用之前,结合一群独特的数据一起(这通常是所有参数和值你打算送,这是“数据”的说法在代码片段在AWS上的网站)

我不知道如何,如果我哈希我打算用我的API秘密发送这是怎么不仅仅是散列API秘密更安全,如果我送参数/值未加密的参数。

Answer 1:

HTTPS访问的API并使用API​​密钥。 然后你就会知道,只有人(你在这种情况下)与键可以访问的API。

它不是更安全,你是正确的。 这就是为什么我建议你的SSL连接。 除非你打算加密一切,你发送来回。

公共/私有密钥方案也将工作做好。 HTTPS要求非常最小的努力



Answer 2:

数字签名提供发送验证通过不安全连接的消息的一种方式。

设置:每个客户都会有自己的私钥公钥 (只有私钥需要被存储在客户端)。 服务器将存储每个客户端的公共密钥。 公共密钥可以是大家有目共睹的,并可以由服务器用来识别客户端。 私钥,只知道客户端,它永远不会显示给任何人。

客户签名请求:与请求数据的其余一起,客户端会出现乱码合并请求数据,并用私钥加密哈希值。 服务器将生成散列以同样的方式(留出散列计算的签名),然后解密使用公钥签名。 如果哈希匹配,该请求是可信的。

需要注意的是HTTPS允许客户端证书,这样你就可以利用现有的工具来完成上述所有,而无需编写服务器端的一行代码(你只需要配置你的Web服务器;唯一的技巧就是确保只有服务器接受证书,它已经拥有)。 此外,客户端代码的数量应该是最小的:你不应该需要做的远不止设置为使用客户端证书的连接。 既然你控制客户端,您可以使用自签名证书,并添加服务器作为证书颁发机构。 有许多的关于使用对做题的iPhone应用程序的客户端证书 ; 您可以通过他们阅读开始。

还需要注意的是,以保护网络API的任何方案仅适用,只要应用程序的副本是值得信赖的手中。 如果有人不值得信任得到阿霍德的话,他们可以使用该应用或提取由应用程序使用的任何机密数据和访问API作为他们的意志。



Answer 3:

对于开发目的,你可以只使用你的Web服务器设置,只允许来自您的IP请求。



文章来源: Securing access to PHP API