我遇到了从其他网站server2
访问远程网站server1
的代码问题。我在server2内部用来登录的代码是以下代码:
require_once("http://server2.com/access/models/config.php");
if (!securePage($_SERVER['PHP_SELF'])){die();}
//Prevent the user visiting the logged in page if he/she is already logged in
if(isUserLoggedIn()) { header("Location: http://server2.com/access/account.php"); die(); }
在server2上看起来我无法使用require_once()
,因为页面没有通过,当我使用include()
时,则阻止用户访问不通过。我想我错过了像cURL
或路径这样的代码。任何人都可以发布代码从另一个远程服务器1调用我的server2
吗?
答案 0 :(得分:2)
您不能包含/要求来自其他服务器的PHP页面,因为这些php文件正在被解析。如果您的config.php
符合最低安全标准,您将最终获得已解析的HTML代码或完全不知道。您必须以不同的方式打开它,但请注意,如果您可以通过远程方式轻松打开config.php
,其他人也可以...
我建议不要使用include,而是尝试不同的方法:例如通过第二台服务器上的php脚本返回纯文本,如:
login|logout
ok|error
id_Paul23
pwHash_asdf02302afbd33
如果您有错误的登录尝试,|
之后的第二项表示备用响应。您的用户将登录数据发送到服务器1上的脚本,该脚本尝试登录尝试服务器2上的特殊脚本,该脚本返回上面的结果,然后您可以在服务器1上执行任何操作。
或更好:以JSON等标准格式发送/接收数据。您已经拥有PHP的功能:json_encode()
和json_decode()
来解析您的数据。