我想将我的域名中的JS信息安全地发送到另一个域中的.php文件,我希望.php只能来自指定域名。
这是域A
$.ajax({
POST: "https://domain-b.com/ant.php",
data: mystring
})
这是域B
<?php
for ($i=0;$i<count($_POST);$i++){
#send to DB code
}
?>
BTW域A和域B都是单独的服务器。
我的理解是因为我使用HTTPS
安全和加密发送的数据,但我发现任何人都可以从任何地方向.php域发送信息。我想防止这种情况。
我想在两者之间插入代码就像密码一样,但是当我在JS中插入它时,任何人都可以看到它,所以没有用它。
答案 0 :(得分:1)
是的,使用https会加密数据。
要查看请求声称来自哪里,您可以查看$_SERVER['HTTP_REFERER']
但这可能是欺骗性的,并且不可靠。
我会使用PHP会话。服务器A设置会话ID。然后,服务器B可以从请求中读取会话ID,以验证用户是否来自服务器A.多个服务器可以共享会话数据。见How to manage a single PHP5 session on multiple apache servers?
答案 1 :(得分:0)
当您从服务器发送帖子请求时。尝试在数据中发送密钥。并且仅在密钥匹配时运行DB代码。
<?php $_SESSION['key'] = md5(uniqid());
<input type="hidden" value="<?php echo $_SESSION['key']; ?>" name="key">
每次用户刷新页面时都会生成一个新的密钥。并且它将因用户而异。
$.ajax({
POST: "https://domain-b.com/ant.php",
Data: mystring // contains secret key
})
php服务器
<?php
$Key //your secret key
if($_SESSION['key'] == key in form data){
for ($i=0;$i<count($_POST);$i++){
#send to DB code
}
}
?>
如果我正确理解了这个问题。这应该是有帮助的:)