PHP file_get_contents服务器检查

时间:2013-02-25 14:23:53

标签: php verification cross-server

我的项目有单独的服务器,我想问所有这些服务器的内容。我发现我必须使用PHP: file_get_contentscURL,但接下来是我的问题。有没有办法让我的服务器验证哪个服务器可以让他们执行东西?

例如我使用这个脚本:

 function is_ajax() {

     // BOOLEAN return if AJAX
     return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';

 }

检查请求是否是基于AJAX的。

如果有办法使用,我可能会访问每个服务器的IP地址。

我可以说,在SERVER B验证了一些信息之后,我要执行的其中一件事就是在SERVER A上启动会话。因此,为了防止其他服务器和脚本在未经许可的情况下执行,我希望我的SERVER B能够验证它实际上是SERVER A谁在询问。

修改 我正在使用会话类在SERVER A上创建会话,该会话类保存在SQL数据库中加密的数据。

同样通过使用会话cookie参数

     session_set_cookie_params(
        $cookieParams['lifetime'],
        $cookieParams['path'],
        $cookieParams['domain'],
        $secure,
        $httponly
     );

即使服务器不同,它们共享相同的域名,但在服务器的子域中是分开的,所以也许可以让SERVER BSERVER A看到会话,然后创建一个类似的会话?

3 个答案:

答案 0 :(得分:1)

如果您将会话存储在像memcached这样的集中式数据存储中,那么如果从同一个域访问它们,您的服务器将共享相同的会话。 PHP支持在memcached中存储会话,因此您只需配置它(session.save_handler)即可。然后,您的所有会话代码仍然可以正常工作,但您的会话将在服务器之间共享。

答案 1 :(得分:0)

我满足于?SOMEPASSWORDVARIABLE = LONGSPASSWORDWITHRANDOMCHARS 正如@ complex857建议的那样。

由于file_get_contents在服务器端运行,因此猜测文件名文件并不容易 变量和密码,如果可以通过监控来自服务器的流量来监控实际请求,但可能性非常小

答案 2 :(得分:-1)

使用[crossdomain.xml][1]文件指定哪些域可以发出请求。其他域名的请求将被拒绝。