Php 在文档就绪的情况下通过AJAX安全地执行查询

Php 在文档就绪的情况下通过AJAX安全地执行查询,php,javascript,mysql,ajax,security,Php,Javascript,Mysql,Ajax,Security,欢迎大家, 我的问题是这样的:我在我的互联网站点上有一些定制的统计数据,我在那里记录用户所做的事情的信息(比如谷歌分析)。显然,我聚合了几个月的信息,但是我存储信息的表太大了,对页面加载有负面影响。流程如下(在索引中,因此影响所有页面): 为了解决这个问题,我想在或使用javascript/AJAX准备好的文档上进行这些查询 如何使用AJAX安全可靠地进行这些查询,以使熟悉javascript/AJAX的客户机不会滥用这些查询。因为如果我只是简单地使用JS函数,那么firebug用户每次都可以访

欢迎大家,

我的问题是这样的:我在我的互联网站点上有一些定制的统计数据,我在那里记录用户所做的事情的信息(比如谷歌分析)。显然,我聚合了几个月的信息,但是我存储信息的表太大了,对页面加载有负面影响。流程如下(在索引中,因此影响所有页面):

为了解决这个问题,我想在
或使用javascript/AJAX准备好的文档上进行这些查询

如何使用AJAX安全可靠地进行这些查询,以使熟悉javascript/AJAX的客户机不会滥用这些查询。因为如果我只是简单地使用JS函数,那么firebug用户每次都可以访问它

我考虑的解决方案包括使用
$\u SESSION
,在index.php顶部标记有关这些查询(id,info)的信息,在AJAX调用的脚本中,我检查是否设置了
$\u SESSION['query\u info']
,并执行它,读取其中的所有信息,然后使用
取消设置($\u SESSION因此,如果再次调用AJAX,因为tat特定的
$\u会话['query\u info']
不存在,我不会在数据库中执行任何操作

您认为这是一个安全的解决方案还是有其他想法?欢迎任何可行的方案


谢谢

尝试将相关的javascript代码放入。

即使使用当前的实现,用户也可能滥用您的统计信息(浏览器刷新、每秒点击页面数次的curl脚本).只需执行一个经典的get或post ajax请求,它与页面相同hit@VladBalmos:不完全是因为它不会改变查询的内容。这就像他滥用谷歌分析,他没有滥用它,只是连续发出请求,我只是正确记录请求。这一切取决于你的代码和你传递的信息类型通过ajax请求。在没有任何数据的情况下执行一个简单的
$.get('/statistics/record_hit.php');
与在服务器端运行记录命中查询是一样的。还有一件事。你不能真正“安全”javascript。你真的无法确保用户不会修改你的js代码。老实说,我永远不会直接将日志放在数据库中…首先以特定格式在日志文件中进行wirte登录…然后编写脚本来处理这些日志文件…并在cron中运行脚本…显然,这种方法不会给你带来真正的好处ime stat,但在安全性和性能方面有帮助。我为什么要这样做?它没有提供与安全相关的优势,或者我不明白你的意思。我可以看到所有的JS代码(即使是缩小的),所以我可以回溯所有内容。基本上,封装在闭包中的变量和函数不能使用任何开发人员工具访问(firebug或chrome开发工具)我在我的问题中说过,我假设一个用户了解firebug,我假设他很了解firebug,所以我不想进行JS验证。你应该“丑化”它,只要请求是从JS发出的,任何人都可以执行它。我可以复制代码,在运行时将其分配给函数,并在我想打扰你的时候使用它.服务器端检查更好options@DannYO:在我的解决方案中,我想使用$\u会话来验证AJAX调用的脚本中的信息。如果有人想这样“滥用”它,那么如果所有查询都使用正确的值,对我来说就不是问题了。(类似于普通的refresh/refresh/refresh.etc/)。
1. Get the included files
2. Execute part of statistics queries
3. Effective page code
4. Execute the last part of statistics queries