从另一台服务器安全地从JS发送到PHP

send from JS to PHP securely from another server

本文关键字:JS PHP 安全 服务器 一台      更新时间:2023-09-26

我想将信息从我域上的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时,任何人都可以看到它,所以没有用。

是的,使用https将加密数据。

要检查请求声称来自哪里,可以检查$_SERVER['HTTP_REFERER']。然而,这可能是伪造的,而且不可靠。

我会使用PHP会话。服务器A设置会话ID。然后,服务器B可以从请求中读取会话ID,以验证用户是否来自服务器A。多个服务器可以共享会话数据。请参阅如何在多个apache服务器上管理单个PHP5会话?

当您从服务器发送post请求时。尝试在数据中发送密钥。并且只有当密钥匹配时才运行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 
  }
}
?>

如果我理解正确的话。这应该很有帮助:)