0

我的项目有单独的服务器,我想询问所有这些服务器的内容。我发现我必须使用PHP: file_get_contentsor 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 B之后开始一个会话。SERVER A因此,为了防止其他服务器和脚本在未经许可的情况下执行,我想要一种方法SERVER B来验证它实际上是SERVER A谁在询问。

编辑: 我正在SERVER A使用会话类创建一个会话,该会话类将加密的数据保存在 SQL 数据库中。

也通过使用会话 cookie 参数

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

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

4

3 回答 3

1

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

于 2013-02-25T15:03:05.807 回答
0

正如@complex857 建议的那样,我使用 ?SOMEPASSWORDVARIABLE=LONGSPASSWORDWITHRANDOMCHARS 解决。

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

于 2013-02-25T15:18:23.290 回答
-1

使用[crossdomain.xml][1]文件来指定哪些域能够发出请求。来自其他域的请求将被拒绝。

于 2013-02-25T14:57:48.253 回答