这几天论坛经常受到 DDoS 的攻击,从某些地方得知攻击者主要利用了论坛的搜索功能进行攻击。
从这个帖子可以得知,论坛的搜索使用的是 Elasticsearch (下文简称 ES)。
然而 ES 是用 Java 编写的,确实太重了,占用内存较多,对于论坛来说不仅增加了硬件成本,也增加了运维成本,增加了论坛受到拒绝服务攻击的风险。
并且,目前的搜索功能的问题也被论坛用户多次诟病,包括结果不对,部分特殊字符报错等。
因此,我建议在论坛 V2 和 V4 的开发中,使用轻量的 ES 替代方案。如 Meilisearch 。
Meilisearch 使用 Rust 编写,相比 Java 有性能高,内存占用较低的优点。并且支持中文分词,有现成的 PHP 和 JS API。同时也应该有恰当的针对 IP 的速率限制或人机验证机制,避免被恶意查询导致拒绝服务攻击。
另外,论坛的几个较为耗费资源的功能(如好友查找),建议同样设置针对 IP 的速率限制,增加人机验证机制,同时尽可能地进行优化。
附:
Meilisearch GitHub 仓库
从这个帖子可以得知,论坛的搜索使用的是 Elasticsearch (下文简称 ES)。
然而 ES 是用 Java 编写的,确实太重了,占用内存较多,对于论坛来说不仅增加了硬件成本,也增加了运维成本,增加了论坛受到拒绝服务攻击的风险。
并且,目前的搜索功能的问题也被论坛用户多次诟病,包括结果不对,部分特殊字符报错等。
因此,我建议在论坛 V2 和 V4 的开发中,使用轻量的 ES 替代方案。如 Meilisearch 。
Meilisearch 使用 Rust 编写,相比 Java 有性能高,内存占用较低的优点。并且支持中文分词,有现成的 PHP 和 JS API。同时也应该有恰当的针对 IP 的速率限制或人机验证机制,避免被恶意查询导致拒绝服务攻击。
另外,论坛的几个较为耗费资源的功能(如好友查找),建议同样设置针对 IP 的速率限制,增加人机验证机制,同时尽可能地进行优化。
附:
Meilisearch GitHub 仓库