[英]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.