我的项目有单独的服务器,我想询问所有这些服务器的内容。我发现我必须使用PHP: file_get_contents
或cURL
,但这是我的问题。有没有一种方法可以让我的服务器验证哪个服务器可以要求他们执行东西?
例如,我使用以下脚本:
function is_ajax() {
// BOOLEAN return if AJAX
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
以检查请求是否基于AJAX。
如果有办法使用的话,我可能会访问每个服务器的IP地址。
我可以说,我想执行的一件事是在SERVER A
验证了一些信息之后,在SERVER B
上启动一个会话。因此,为了防止其他服务器和脚本在未经许可的情况下执行,我想让我的SERVER B
验证实际是SERVER A
在请求。
编辑:我正在SERVER A
上使用一个会话类创建一个会话,该会话类将加密的数据保存在SQL数据库中。
同样通过使用会话cookie参数
session_set_cookie_params(
$cookieParams['lifetime'],
$cookieParams['path'],
$cookieParams['domain'],
$secure,
$httponly
);
尽管服务器不同,但它们共享相同的域名,但在服务器之间的子域中是分开的,所以一种方法可能是让SERVER B
在SERVER A
上看到会话,然后创建类似的会话?
如果您的会话存储在像memcached这样的集中式数据存储中,那么如果从同一域访问,您的服务器将共享相同的会话。PHP支持将会话存储在memcached中,因此您只需要配置它(session.save_handler(即可。然后,所有会话代码仍将按原样运行,但会话将在服务器之间共享。
我接受?SOMEPASSWORDVARIABLE=longpasswordwithrandomchars正如@complex857所建议的那样。
由于fileget_contents是在服务器端运行的,因此猜测文件名文件不是很容易变量和密码,如果实际请求可以通过监控服务器上的流量来监控,但可能性很小
使用[crossdomain.xml][1]
文件指定哪些域可以发出请求。来自其他域的请求将被拒绝。