[英]Get from which IP a page was accessed via AJAX request in PHP
我有一个简单的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:数据库。
我将采用的一种方法是使用ip创建一个mysql字段,并最后将其加载到另一个可作为访问控制的ajax调用中。 例如,您将其添加到普通页面并使用javascript加载,例如使用javascript中的setInterval()函数。
当该ajax被调用时,该ip将被添加到表中,并设置一个unix时间戳。
如果自上次加载以来该时间戳超过2分钟,则您将阻止常规脚本进行访问。 这样,您还可以插入一个函数来阻止已知为假脚本或对脚本不利的ip。
选项2:在主PHP加载页面中设置会话。
您可以创建一个会话,为例如$ _SESSION [“ access”] =“ YOU SECRET KEY”设置魔术键; 然后检查这个是否在remote.php中
我希望使用数据库版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.