【发布时间】:2019-03-13 10:12:34
【问题描述】:
我们正在尝试最大程度地减少对我们搜索 URL 的 bot 命中(这意味着它不会加载表单而只是发送参数),我认为在隐藏输入中使用 nonce 可以解决这个问题,但我们的管理员说负载平衡的服务器可能会从一台服务器发送表单随机数,但表单提交可以由另一台服务器处理......所以我不确定我们如何才能让它工作并且我在 web 时得到看似无关/不相关的结果- 搜索整个问题。
几年前我做过一些表单 nonce 实现,但它们都通过同一个服务器(一个是由 CakePHP 自动生成的,另一个我不记得我们是如何做到的)。我们在 CentOS 6.x 服务器上使用带有 PHP 5.x 的 httpd,Live 服务器有 1 个用于处理请求的临时服务器,然后有 10 个负载均衡器(不确定这是否真的重要,但他们有文件系统的副本和代码同时访问同一个数据库)。
管理员熟悉负载平衡(我从未做过),并说他可能能够实现某种持久性或使用 memcache -d 或类似的东西(我从未尝试过),但我我不太确定。
【问题讨论】:
-
好吧,基本上有两种方法可以解决它。您可以在负载均衡器上实现“粘性”会话,也可以将 nonce 存储在所有网络服务器都可以看到的地方——这可以是共享会话存储,如 memcache、数据库,甚至只是一个网络目录。或两者。什么最有意义将取决于您的基础架构。
标签: php forms load-balancing nonce