2012-03-15 107 views
1

限制我的html頁面具有以下JS代碼:Ajax請求 - 從當前服務器

<script type="text/javascript"> 
    $.ajax({ 
     url   : "get.data.php", 
     type  : "POST", 
     dataType : 'json', 
     data  : {'data01': param01, 'data02': param02}, 
     success  : function(data){ 
       //parsing the code 
     } 
    }); 
</script> 

嗯,我想的是,PHP get.data.php將檢測該請求是從 到來並且如果它來自受信任的服務器,則正確回答..。如果請求來自遠程未知服務器,則忽略該請求。

我有一些想法,但我想聽聽其他人的建議。

新提示: 我想,關於我的網絡服務器只有我的web應用程序可以訪問和retrive從服務PHP腳本如get.data.php 數據,避免對其他的網絡服務器,其他Web應用程序可以直接解決get.data。 PHP來檢索數據,繞過我的Web應用程序。

+0

受信任的服務器是什麼意思? 。每個用戶都將被跟蹤? – 2012-03-15 09:24:50

+0

AJAX請求來自瀏覽器,而不是服務器。不確定你的用例是什麼。你想阻止一些用戶嗎? – 2012-03-15 11:11:53

+0

@duke我希望只有我的web服務器上的我的web應用程序可以訪問和檢索服務中的數據PHP腳本,比如get.data.php 並且避免其他web服務器上的其他web應用程序可能直接尋址get.data.php來檢索數據,繞過我的webapp。 – kante 2012-03-28 10:13:58

回答

1

可以使用$_SERVER變量來獲取有關請求的信息,然後將這些信息或比較,以你自己的數據,如果其信任不

例如:

$remote_ip = $_SERVER['REMOTE_ADDR']; // get ip of the request 

的PHP手冊$_SERVER

+0

您提供的建議不起作用,因爲包含上述腳本的請求以及對get.data.php的請求都來自不同的IP(來自webserverIP),即使隨後從第一頁調用get.data.php。 – kante 2012-03-28 10:10:00

+0

當你從javascript調用時,@ kante是$ _SERVER ['HTTP_REFERER']嗎?雖然,該值是由瀏覽器 – trembon 2012-03-28 10:58:13

+0

以及使用$ _SERVER ['HTTP_REFERER']是我的第一個想法...但它並不總是要工作...有一些Http_referer沒有設置的情況下。那麼對於任何人,甚至對於應用程序的所有者都沒有答案 – kante 2012-04-05 14:21:59