有没有一种可靠的方法来判断对您网站的请求是来自服务器到服务器的调用还是来自浏览器的 url 调用?
例如,Paypal IPN 是一个服务器到服务器的呼叫。但是您也可以通过直接从带有浏览器参数的 url 调用它来伪造它。
我尝试了两种方法并在两种情况下都转储了 $_SERVER 并且为浏览器设置了一些变量,这些变量没有为服务器到服务器调用设置......即
HTTP_COOKIE
HTTP_CACHE_CONTROL
它们在服务器到服务器调用中不存在。我可以可靠地假设情况总是如此吗?
我可以使用 HTTP_USER_AGENT 但这可以是任何东西,我不想检查 REMOTE_ADDR 因为我试图使这更像是一种动态更改,不限于贝宝或任何特定的服务器端回复。我的假设是服务器端调用会缺少“通用浏览器”值。它可能不是 100% 可靠,但可能是 99%
这将最终确定我是在回调页面上使用 php 标头重定向还是 javascript 重定向。
想法?