Я новичок в ES и интересно, если search function дезинфицирует внутреннее поле «запрос» в параметре тела, когда передал что-то вроде:Выполняет ли Elasticsearch-py дезинформирование запросов?
"query": {
"filtered": {
"query": {
"match": {
"_all": {
"query": "[THIS PARAMETER]",
"operator": "and"
}
}
}
}
}
Я попытался каждый вход, что я могу разорвать его и я могу Кажется. Я создал функцию санитизации, но это привело к худшим результатам поиска при поиске строк, таких как «&» или «+». Я просмотрел код и, похоже, не обнаружил никакой очевидной санации в этой области. Я просто хочу быть уверенным, прежде чем отправлять запрос пользователя прямо через функцию.
Благодаря
Это поле запроса является частью тела JSON, почему Python что-то ему делает? –
Вот источник ['search'] (https://github.com/elastic/elasticsearch-py/blob/master/elasticsearch/client/__init__.py#L453-L531) –
Потому что это библиотека, предназначенная для абстрактного большая часть функциональности ES. Я полагал, что это возможно, это может быть итерация словаря и дезинфекция известных входов, так же, как ORM делает это для защиты от SQL-инъекции. –