我有一个简单的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文件位于同一服务器上,例如: G。 http://example.com/js/ajaxstuff.js
。
我的目标是从哪个网站访问PHP页面,以防止用户只是访问PHP页面本身来收集信息。基本上,我试图在从AJAX访问页面时获得http://example.com
或所述服务器的IP,或者如果从其浏览器直接访问PHP页面,则获取用户的IP地址。
答案 0 :(得分:0)
你可以在PHP中使用ref标签,但是这不会给你正确的方法来实现它。
选项1:数据库。
我将改为创建一个带有ip的mysql字段,并在另一个用作访问控制的ajax调用中加载。例如,您将其添加到普通页面并使用javascript加载它,例如在javascript中使用setInterval()函数。
当调用该ajax时,ip将被添加到表中并设置unix时间戳。
如果该时间戳超过上次加载后的2分钟,则会阻止正常的脚本进行访问。这样你也可以插入一个函数来阻止你知道是假的或不适合你的脚本的ips。
选项2:在主php加载页面中设置Session。
您可以创建一个设置魔术键的会话,例如$ _SESSION [" access"] ="您的秘密密钥&#34 ;;然后检查这个是否在remote.php中
我更喜欢数据库版本。