我有一个简单的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地址。
发布于 2015-10-05 00:03:41
您可以在PHP中使用ref标记,但这不会给您提供正确的工作方式。
选项1:数据库。
我想采用的一种方法是创建一个带有ip的mysql字段,最后加载到另一个ajax调用中,该调用将用作访问控制。例如,您可以将其添加到普通页面中,并使用javascript加载它,例如使用javascript中的setInterval()函数。
当ajax被调用时,ip将被添加到表中,并设置一个unix时间戳。
如果自上次加载以来时间戳超过2分钟,则阻止正常脚本进行访问。通过这种方式,您还可以插入一个函数来阻止您知道是假的或对您的脚本不好的ips。
选项2:在php加载主页面设置Session。
您可以创建一个会话,您可以设置一个魔法密钥,例如$_SESSION"access"="YOU SECRET KEY";然后检查这个会话是否在remote.php中
我更喜欢数据库版本。
https://stackoverflow.com/questions/32935377
复制相似问题