如何解决Solr 7.5 内存泄漏和 sql 注入类型查询崩溃
我们有一组在 Solr 7.5 上运行的 solr 节点。我们最近有几集整个集群崩溃并一起死亡。深入挖掘一下,我们发现罪魁祸首是我们网站上发生的一些 sql 注入攻击,其中搜索词中有 sql 注入,并将其输入到 solr 中的 q 参数中。我能够使用稳定的 solr 并将其隔离,然后只运行 1 个查询并使其崩溃。每次我运行常规查询并看到它工作时,只需更改 q= 参数就会超时并最终使 solr 实例崩溃。这是我运行的查询的 q 参数:
q=-6792)))+UNION+ALL+SELECT+NULL,NULL,CHR(113)||CHR(98)||CHR(118)||CHR(113)||CHR (113)||CHR(104)||CHR(68)||CHR(86)||CHR(114)||CHR(109)||CHR(97)||CHR(89)||CHR(89) )||CHR(112)||CHR(76)||CHR(90)||CHR(105)||CHR(113)||CHR(86)||CHR(102)||CHR(97)| |CHR(108)||CHR(89)||CHR(83)||CHR(81)||CHR(107)||CHR(69)||CHR(111)||CHR(97)||CHR (75)||CHR(87)||CHR(68)||CHR(108)||CHR(73)||CHR(68)||CHR(86)||CHR(118)||CHR(101) )||CHR(71)||CHR(78)||CHR(106)||CHR(106)||CHR(76)||CHR(65)||CHR(82)||CHR(113)| |CHR(106)||CHR(98)||CHR(98)||CHR(113)+FROM+DUAL--+gKiW
我什至去掉了“||”字符并用“,”替换它们,它仍然崩溃。请注意,这些是 sql 注入攻击,并不是真正好的查询。 Solr GC 日志暴露了问题并显示内存占用膨胀(一分钟内从 2GB 增加到 18GB)到完全垃圾收集失败并且 Solr 实例无响应的程度。因此,1 个查询能够将其推至临界点并消耗 18GB 内存。
我曾尝试搜索长描述文本,但效果很好。所以这些字符的某些东西可能会导致这种情况。有谁知道这可能是如何/为什么发生的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。