【问题标题】:Block repeating requests to server阻止对服务器的重复请求
【发布时间】:2014-05-08 14:36:22
【问题描述】:

我的应用程序中有一个简单的问题,它由 FLASH 前端及其 PHP 后端组成。通信通过 NetConnection 和 AMF 消息管理到 Zend Server,Zend Server 将包含函数的类映射到服务器端的请求。

此外,每个请求都经过签名,因此如果有人在请求数据中进行操作,则服务器端不会接受它。但是,由于没有系统阻止重复请求,因此允许重复请求,这会导致服务器端出现问题。用户试图通过重复请求潜入并操纵数据。我知道这是服务器端的问题,但我想防止重复请求。

问题是——如何实现呢?通过发送请求的号码?它会导致同步问题,因为有时请求以不同的方式发送。

在前端 FLASH 端等待响应的排序方法是防止这种情况的好方法吗?或者有没有其他选项可以很好地解决这个问题?

【问题讨论】:

  • 如果您正在构建一个新的应用程序,为什么要使用 Flash?
  • 虽然它不是一个新的应用程序,但没有考虑将它从闪存迁移到任何其他平台的成本。

标签: php actionscript-3 flash frontend backend


【解决方案1】:

发送一个序列号并通过记住最后 100 个左右的序列号来检查该序列号是否之前未被处理过。如果序列号不在最后 100 位中,则它应该高于记住的最后一个传入序列号。

【讨论】:

  • 我已经实现了与这种方法类似的东西,将计数器保存在 $_SESSION 数组中,并在应用程序通过我的应用程序中的 init 方法运行之间重置它。仅仅因为我使用的是 Yii 框架,我不得不手动启动会话: session->open() 工作得很好,不再重复请求作弊。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2019-01-18
  • 2017-06-06
  • 2011-10-30
  • 2012-03-12
  • 1970-01-01
  • 2019-07-21
相关资源
最近更新 更多