Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于移动应用程序安全性/身份验证的API_Api_Security_Mobile_Oauth - Fatal编程技术网

用于移动应用程序安全性/身份验证的API

用于移动应用程序安全性/身份验证的API,api,security,mobile,oauth,Api,Security,Mobile,Oauth,我有一个为移动应用程序提供内容的API,目前没有将该API用于其他产品的计划。我有两个主要问题: 如何防止某人嗅探API请求并发出自己的请求(这不应该是公共API) 如果无法完全阻止#1,那么如何限制/限制未经批准的消费者的请求?这里还有其他问题吗 对每个请求使用auth令牌(作为GET参数传递)满足#2(我可以随时撤销它),但是我不想在将来更新应用程序以使用不同的令牌 此外,移动应用程序中没有用户身份验证,API是用PHP编写的 这方面的最佳实践是什么?这里有一些建议可以帮助您保持API的私密

我有一个为移动应用程序提供内容的API,目前没有将该API用于其他产品的计划。我有两个主要问题:

  • 如何防止某人嗅探API请求并发出自己的请求(这不应该是公共API)
  • 如果无法完全阻止#1,那么如何限制/限制未经批准的消费者的请求?这里还有其他问题吗
  • 对每个请求使用auth令牌(作为GET参数传递)满足#2(我可以随时撤销它),但是我不想在将来更新应用程序以使用不同的令牌

    此外,移动应用程序中没有用户身份验证,API是用PHP编写的


    这方面的最佳实践是什么?

    这里有一些建议可以帮助您保持API的私密性

    • 用于阻止随意的数据包嗅探
    • 确保您的客户端验证服务器证书以防止攻击
    • 在客户端代码中加密或混淆身份验证令牌,这样它就不会明显地暴露在字符串转储中

    但最终,如果有人真的想访问您的API,他们会——或者通过反向工程您的客户机代码,或者。您所能期望的最好方法是阻止普通用户的访问尝试。

    以下是一些有助于保持API私有化的建议

    • 用于阻止随意的数据包嗅探
    • 确保您的客户端验证服务器证书以防止攻击
    • 在客户端代码中加密或混淆身份验证令牌,这样它就不会明显地暴露在字符串转储中
    但最终,如果有人真的想访问您的API,他们会——或者通过反向工程您的客户机代码,或者。您所能期望的最好办法是阻止普通用户尝试访问。

    • 如何防止某人嗅探API请求并发出自己的请求(这不应该是公共API)。
    我将重复前面的回答,即您应该理所当然地使用TLS,以便加密线路上的流量以防止嗅探。但我要补充的是,您还需要阻止“捕获重播”攻击,即攻击者可能会重新发送他们可能已获得的先前消息(例如,从客户端日志),尽管使用了TLS。在这种情况下,如果您在请求中使用nonce(意思是“数字一次”)和/或时间戳,并带有HMAC签名,则可以检测并阻止重播的API请求。我在我的博客上写了一个例子:。例如,Amazon的API使用这种方法

    • 如果无法完全预防#1,那么我如何才能做到 来自未经批准的消费者的限制/节流请求?还有其他的吗 关注点在这里?

    以及HMAC签名(上文),您还可以考虑监视传入的IP地址范围、设备信息(例如指示设备类型的标头——Android vs IOS等),以及可以用来将多个请求链接到特定客户端的其他因素,然后在API级别应用策略。p> 全面披露:我为API管理/API网关供应商(Axway)工作,但上面的信息应该是通用的。

    • 如何防止某人嗅探API请求并发出自己的请求(这不应该是公共API)。
    我将重复前面的回答,即您应该理所当然地使用TLS,以便加密线路上的流量以防止嗅探。但我要补充的是,您还需要阻止“捕获重播”攻击,即攻击者可能会重新发送他们可能已获得的先前消息(例如,从客户端日志),尽管使用了TLS。在这种情况下,如果您在请求中使用nonce(意思是“数字一次”)和/或时间戳,并带有HMAC签名,则可以检测并阻止重播的API请求。我在我的博客上写了一个例子:。例如,Amazon的API使用这种方法

    • 如果无法完全预防#1,那么我如何才能做到 来自未经批准的消费者的限制/节流请求?还有其他的吗 关注点在这里?

    以及HMAC签名(上文),您还可以考虑监视传入的IP地址范围、设备信息(例如指示设备类型的标头——Android vs IOS等),以及可以用来将多个请求链接到特定客户端的其他因素,然后在API级别应用策略。p> 全面披露:我为API管理/API网关供应商(Axway)工作,但上面的信息应该是通用的