簡體   English   中英

從另一台服務器安全地從JS發送到PHP

[英]send from JS to PHP securely from another server

我想將信息從我域中的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 
    }
    ?>

順便說一句,域A和域B都是單獨的服務器。 我的理解是因為我正在使用HTTPS安全地發送和加密數據,但是我發現任何人都可以將信息從任何地方發送到.php域。 我想防止這種情況。 我想在兩者之間插入代碼就像是密碼,但是當我將其插入JS時,任何人都可以看到,因此沒有用。

是的,使用https將加密數據。

要檢查請求聲稱來自何處,可以檢查$_SERVER['HTTP_REFERER']但是,這可以被欺騙,並且不可靠。

我將使用PHP會話。 服務器A設置會話ID。 然后,服務器B可以從請求中讀取會話ID,以驗證用戶是否來自服務器A。多個服務器可以共享會話數據。 請參閱如何在多個apache服務器上管理一個PHP5會話?

從服務器發送發帖請求時。 嘗試在數據中發送密鑰。 並僅在密鑰匹配時運行數據庫代碼。

<?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 
  }
}
?>

如果我正確理解了這個問題。 這應該會有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM