ruby-on-rails - 防止用户发布虚假的 AJAX 请求(确保 AJAX 请求仅来自应用程序)

标签 ruby-on-rails ajax security

我正在开发一个网络应用程序,其中某些操作会为用户带来“业力”。 karma increment 是一个简单的 AJAX 请求,它在数据库中增加一个数字。现在如何防止用户手动发出重复的 AJAX 请求并一次又一次地增加自己的分数?

编辑:赚取用户业力的事件都是在客户端使用 javascript 发生的。因此,服务器无法知道它是来自应用程序的“真实”请求还是由用户在控制台上键入 $.post 创建的“虚假”请求。

Edit2:找到一个 similar SO question处理这个问题。听起来答案是,混淆的安全性是最好的选择。保证安全是不可能的。因此,任何有关加密工具等的建议都会使 AJAX 调用的内容更难阅读,我们将不胜感激。

最佳答案

与其试图阻止人们作弊,您应该专注于尽量减少作弊者对非作弊者的不利影响:

如果 karma 被用作“高分”并且您担心用户获得 karma 的速度比他们应该考虑的要保留上次获得 karma 的时间戳,如果时间过早和/或设置,则拒绝请求获得的业力的每日限制,因此当他们不在键盘上时,他们无法自动化该过程。

如果为用户赚取业力的操作也对其他用户产生影响,那么它应该是一个触发这两种影响的 ajax 调用。

关于ruby-on-rails - 防止用户发布虚假的 AJAX 请求(确保 AJAX 请求仅来自应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11454028/

相关文章:

azure - 您可以将azureml Rest端点从公共(public)更改为私有(private)吗

sql - 哪个 ActiveRecord 查询更快?

ruby-on-rails - 使用 Ruby 1.9.3 的 Windows 8 x64 上的 nokogiri gem 缺少 libxml2

javascript - jQuery ajax使用成功事件,如何获取json属性

android - 标记非敏感数据,以防止从外部来源提交,而不是完全加密? (移动应用程序提交到服务器)

sql - 获取sql server 2005中存储过程的权限

ruby-on-rails - Rails 4 - 设计, guest 用户导致过滤器链停止

javascript - @user = 选择了什么

php - Jquery文件上传隐藏IFrame

javascript - Angular onreadystatechange