我有一个简单的AJAX GET请求到某个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文件位于同一服务器上,例如http://example.com/js/ajaxstuff.js
。
我的目标是获得从哪个网站访问PHP页面,以防止用户简单地去PHP页面本身收集信息。基本上,当从AJAX访问页面时,我试图获得http://example.com
或所述服务器的IP的结果,或者如果从浏览器直接访问PHP页面,则获取用户的IP地址。
你可以在PHP中使用ref标签,但这不会给你正确的方法让它工作
选项1:Database.
我要做的一种方式,而不是创建一个mysql字段与ip和最后加载在另一个ajax调用,将作为访问控制工作。例如,你添加到正常的页面,并加载它与javascript的setInterval()函数为例。
当ajax被调用时,ip将被添加到表中,并设置unix时间戳。
如果时间戳在上次加载后超过2分钟,那么您将阻止正常脚本的访问。这样,你还可以插入一个函数来阻止你知道是假的或对你的脚本不好的ip。
选项2:在php主加载页面设置Session。
$_SESSION["access"]=" You SECRET key ";然后检查它是否在remote。php 中我更喜欢数据库版本