Solr DoS защита - PullRequest
       12

Solr DoS защита

1 голос
/ 14 ноября 2010

Наше веб-приложение недавно стало целью некоторых DDoSers. Мы использовали solr, и им удалось сгенерировать 100% -ую нагрузку, выполняя поиск "**" каждые несколько секунд. Может кто-нибудь сказать мне, почему этот запрос выполняется десятки секунд, а все остальное занимает всего миллисекунды? Кроме того, код добавляет идентификатор пользователя к поиску, поэтому запрос был «userid: 10 AND **», что не должно замедлять работу, поскольку у этого пользователя всего 10 документов или около того.

Кто-нибудь знает, что происходит и как мы можем лучше всего защитить себя от этого?

Спасибо.

1 Ответ

1 голос
/ 15 ноября 2010

** интерпретируется Solr как запрос с подстановочным символом, начинающимся и заканчивающимся, и поскольку это не определенное поле, оно попадает в поле поиска по умолчанию, которое (как вы сказали в комментариях) является большим текстовым полем.Таким образом, он заканчивает поиском всего, что, вероятно, и занимает так много времени.

Решение: отфильтруйте ** в вашем приложении перед передачей запроса в Solr.Вы можете даже отфильтровать все *, если не хотите, чтобы ваши пользователи отправляли какие-либо групповые запросы.

...