繁体   English   中英

通过PHP中的AJAX请求获取从哪个IP访问页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM