Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 如何在RESTAPI中捕获请求url/域?_Php_Api_Url_Rest_Dns - Fatal编程技术网

Php 如何在RESTAPI中捕获请求url/域?

Php 如何在RESTAPI中捕获请求url/域?,php,api,url,rest,dns,Php,Api,Url,Rest,Dns,这可能有一个简单的答案(我希望如此),但在网上我只找到了如何获取当前URL/域的示例。没有,我在哪里可以找到如何获取传入http请求 我的设置是一个RESTAPI,它处理典型的GET/POST/DELETE/PUT请求。我必须为客户返回有关他们从中提取的域的域信息。因此,如果使用my CMS的客户机单击信息,他必须接收有关他登录的域的信息(从而从中发送请求) 我选择不在这里添加代码,因为我的问题与实际代码的关系不如与方法论的关系。提前感谢您提供的所有答案 听起来好像您在寻找通过$\u服务器['H

这可能有一个简单的答案(我希望如此),但在网上我只找到了如何获取当前URL/域的示例。没有,我在哪里可以找到如何获取传入http请求

我的设置是一个RESTAPI,它处理典型的GET/POST/DELETE/PUT请求。我必须为客户返回有关他们从中提取的域的域信息。因此,如果使用my CMS的客户机单击信息,他必须接收有关他登录的域的信息(从而从中发送请求)


我选择不在这里添加代码,因为我的问题与实际代码的关系不如与方法论的关系。提前感谢您提供的所有答案

听起来好像您在寻找通过
$\u服务器['HTTP\u REFERER']

在PHP中可以访问的,据我所知,没有可靠的方法来确定请求来自哪个域。也许您可以检查客户端的IP地址和/或HTTP引用,并将其与一组域匹配,。。。但在我看来,这并不是100%安全的

如何为您的API调用实现一个(可选)参数,它必须是domainname

打印服务器($)


也许它对你有用

在互联网上,每个地址都可能被伪造(VPN、代理等)。这是网络的基本原则之一

您将永远无法使用100%保修进行检测,因此您最多只能使用
$\u服务器['HTTP\u REFERER']
$\u服务器['REMOTE\u ADDR']

在保存/处理它之前,您可以对它的存在进行额外的验证,但这可能会增加服务器的性能


如果您的目的是为某些方法/数据提供一些额外的访问规则,那么您应该使用其他验证机制(令牌、密码等)。

我最终在外部php文件中定义了一个密钥常量,我将在CMS中向客户机交付该密钥常量。(反正已经有一堆常量了)

在服务器端,我将密钥放入数据库,并在每个请求上比较这些密钥。这不是傻瓜式的,但我意识到我也可以将该键用于其他函数,所以我还是实现了它


使用这种方法,再加上其他各种安全检查,我发现不必跟踪请求域。谢谢大家的回复

我阅读了HTTP_REFERER,但由于它带来的安全风险,我选择不使用它。显然,它总是可以伪造的。而且也不能很好地与主机共享配合使用。我的一些客户有。是否有更安全的方法进行预访问?正如另一个答案中所建议的,您可能希望将域添加为接口的参数。如果安全是一个真正的问题,那么您根本不能依赖用户提交的请求。你的申请和推荐网站之间的联系有多深?相当深。用户将访问域信息和客户信息(没有银行帐户,只有账单地址等)。我最后做的是在一个外部.php文件(客户端)和数据库中的服务器上包含一个密钥。比较这些有助于我根除虚假请求。它肯定不是完全可靠的,但我也可以将密钥用于其他功能,所以我还是实现了它。$\u服务器全局变量都是关于服务器端的。我正在寻找请求(客户端)信息,特别是请求域。