2012-03-15 108 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