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
Php API安全:如何按域限制访问?_Php_Security_Api - Fatal编程技术网

Php API安全:如何按域限制访问?

Php API安全:如何按域限制访问?,php,security,api,Php,Security,Api,我公开了一个简单的API,需要确保只有授权用户才能访问它。我将提供一个API密钥进行身份验证。但是,我还想将API密钥与某个域相关联(这意味着,只有在授权域中使用API密钥时,它才应该工作) 如何在API端检查是否从授权域访问?HTTP_REFERER显然不可靠。建议?您正在公开哪种API?有许多不同种类的API-我假设您不公开操作系统的API 假设您想公开一些web应用程序的API,您可以看看,它基于回调URL-您可以阻止某些域通过回调URL被调用 了解更多信息。HTTP+SSL是一个复杂的协

我公开了一个简单的API,需要确保只有授权用户才能访问它。我将提供一个API密钥进行身份验证。但是,我还想将API密钥与某个域相关联(这意味着,只有在授权域中使用API密钥时,它才应该工作)


如何在API端检查是否从授权域访问?HTTP_REFERER显然不可靠。建议?

您正在公开哪种API?有许多不同种类的API-我假设您不公开操作系统的API

假设您想公开一些web应用程序的API,您可以看看,它基于回调URL-您可以阻止某些域通过回调URL被调用


了解更多信息。

HTTP+SSL是一个复杂的协议集,支持服务器和客户端的证书,在这种情况下可能可以使用,但不知何故,我觉得这是一个过度使用。

API是如何使用的?它是通过JavaScript访问的?一些可以通过JavaScript访问(因为它与GET一起工作),而其他不能(因为它使用POST)。JavaScript可以很好地进行POST。而不是到不同的域,这就是API所在的域。同一原产地政策。对于GET,jQuery具有getJSON,这是一种变通方法,是一种web应用程序API。OAuth计划用于第二个版本。有什么好的临时解决方案吗?@StackOverflowNewbie如果您现在不能使用OAuth,只需使用该特定功能(需要auth流,需要回调,就像在OAuth中一样)。在这个阶段,这对您来说是足够的解决方案吗?您能详细说明一下您的意思吗?@stackoverownewbie您需要从OAuth获得的是回调URL的工作方式(不实现完整的OAuth很容易实现)。如果您的API的设计方式需要将一些信息返回到某个回调URL,那么您就放心了。它的工作原理如下:1)外部应用程序使用适当的参数调用您的应用程序(简而言之,访问键和回调URL是必须的),2)您决定特定的回调URL是否在您允许访问应用程序的域内,3)您可以使用一些附加数据(例如请求令牌)调用特定的回调URL,或者不调用它,这要求客户端应用程序是可调用的,如果它是基于浏览器的javascript,则可能不是这样。