PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何用PHP获取请求的来源?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果有人从some-client.com发送XHR请求到some-rest.com,我想用 PHP获取请求的来源(域名,而不是客户端Ip).

可能的解决方案:

>也许我可以使用$_SERVER [‘http_ORIGIN’],但我不知道它是否是标准.
>我看到另一个标题,如$_SERVER [‘http_HOST’]或$_SERVER [‘SERVER_NAME’],但有些情况下这会返回真实主机名而不是真实域.
>并且$_SERVER [‘REMOTE_ADDR’]给出了客户端IP.

什么是使用PHP获取域名等请求的正确方法

谢谢!

根据MDN的第 HTTP access control (CORS)条:

必须将所有请求设置为Origin头,以便在CORS(跨源资源共享)机制下正常工作.

“Origin”请求标头是RFC 6454的一部分,并将其描述为CORS机制的一部分,并且根据MDN与所有浏览器兼容.

@H_831_1@mDN的描述:

@H_831_1@mDN的例子:

因此,要使用PHP获取XHR请求的来源,您可以使用:

@H_419_38@$_SERVER['http_ORIGIN']

并且,在直接请求的情况下,您可以组合http_REFERER和REMOTE_ADDR,如:

@H_419_38@if (array_key_exists('http_REFERER',$_SERVER)) { $origin = $_SERVER['http_REFERER']; } else { $origin = $_SERVER['REMOTE_ADDR']; }

因此,可能的最终解决方案是:

@H_419_38@if (array_key_exists('http_ORIGIN',$_SERVER)) { $origin = $_SERVER['http_ORIGIN']; } else if (array_key_exists('http_REFERER',$_SERVER)) { $origin = $_SERVER['http_REFERER']; } else { $origin = $_SERVER['REMOTE_ADDR']; } @H_831_1@mDN是Mozilla Developer Network.

非常感谢@trine,@ waseem-bashir,@ p0lt10n和其他人的帮助.

大佬总结

以上是大佬教程为你收集整理的如何用PHP获取请求的来源?全部内容,希望文章能够帮你解决如何用PHP获取请求的来源?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。