2015-10-04 69 views
2

通过AJAX请求访问我有一个简单的AJAX GET请求将用特定的PHP页面:得到哪些IP页面是PHP

$.ajax({ 
    type: "GET", 
    url: "http://example.com/remote.php", 
    success: function(response){ 
     document.getElementById("test").innerHTML = response; 
    }   
}); 

remote.php页呼应了$_SERVE['REMOTE_ADDR']变量。 AJAX请求的响应是客户端本身的IP地址(用户从中导航)。

包含AJAX请求的JS文件位于同一台服务器上,例如, G。 http://example.com/js/ajaxstuff.js

我的目标是从哪个网站访问PHP页面,以防止用户简单地通过PHP页面本身收集信息。基本上,我试图从AJAX访问页面时获得http://example.com的结果或所述服务器的IP的结果,或者如果PHP浏览器直接从其浏览器访问PHP页面,则尝试获得IP的结果。

回答

0

那么你可以在PHP中使用ref标签,但这不会给你正确的方式来获得这个工作。

选项1:数据库。

我会做的一种方式,而不是将创建一个MySQL字段与IP和最后加载在另一个Ajax调用将作为访问控制。例如,您将其添加到普通页面中,并使用javascript加载它,例如在javascript中使用setInterval()函数。

当调用ajax时,ip将被添加到表中,并设置一个unix时间戳。

如果该时间戳大于上次加载后的2分钟,则会阻止您的普通脚本进行访问。这样你也可以插入一个函数来阻止你认为是假的或不适合你脚本的ips。

选项2:在主php加载页面设置会话。

您可以创建一个会话,您可以为例如$ _SESSION [“access”] =“YOU SECRET KEY”设置一个魔术键;然后检查这个是否在remote.php里面

我更喜欢数据库版本。

+0

这不完全是我的目标。这不是我想要阻止某个用户的IP,我只是想允许通过网站的请求。 – Momo

+0

那么选项1和选项2都会为你做到这一点。 – user2420647

+0

号码。“AJAX请求的响应是客户端本身的IP地址(用户从中导航)”。我想知道如何访问PHP页面;或者用户创建了第三方网站,通过AJAX访问网页或者通过浏览器直接连接到网页,或者该网页是通过*仅允许的JS脚本*访问的,位于存储PHP文件的网站内部太。 – Momo