假设我的 html 表单有 100 个字段。填写所有字段后,系统会计算一些分数并向用户显示(假设分数值从 0 到 3000)。
当用户更改任何字段中的值时,我们向他显示值范围(0-1000、1001-2000、2001-3000),没有详细分数。但是一旦按下“提交”按钮,就会显示准确的分数。
现在我需要保护逻辑 - 因此,用户不应该能够理解每个字段如何影响分数。此外,用户不应该能够使用某些程序来“玩”这些值并查看分数如何变化。
我正在考虑以下方法:
- 使用会话;
- 在服务器端保存分数的当前值;
- 当某个字段的值发生变化时,向服务器发送更改后的字段名称和新值的请求;
- 在服务器端验证上一个请求何时发送,如果时间差太小,则拒绝请求;
- 服务器回复新范围并保存新值;
- 当按下“提交”时,服务器会回复分数的服务器值(不要重新计算,按原样)。不要太频繁地回复这个问题。
还有其他(更好)的方法吗?
对此没有单一的解决方案。您可以尝试让用户很难对其进行黑客攻击,并且在不被发现的情况下进行攻击,并采取可能的强制措施。
- 当用户显示表单时使用“启用程序”cookie(或设置会话标志),并在提交响应之前检查此特定 cookie 或标志。提供响应后清除启动器,并且不允许已提交的人提交
- 随机化字段名称并在服务器端检查字段是否具有正确的随机名称
- 使用cookie来检查用户是否已经提交了表单(很容易被破解)
- 根据流行的 HTTP 库检查用户代理(并且不允许人们使用它们提交表单)
- 监控同一 IP 是否进行大量提交 - 不精确,但可能表明存在可疑之处
这些是我首先想到的想法。其他人很可能还会有其他富有洞察力的评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)