2016-01-31 3 views
0

Je suis nouveau à ES et de se demander si le search function aseptise le champ « requête » intérieure dans le paramètre du corps lors de la remise quelque chose comme:Elasticsearch-py désinfecte-t-il les requêtes?

"query": { 
     "filtered": { 
     "query": { 
      "match": { 
       "_all": { 
        "query": "[THIS PARAMETER]", 
        "operator": "and" 
       } 
      } 
     } 
     } 
    } 

J'ai essayé toutes les entrées que je peux pour le briser et je peux ne semble pas. J'ai créé une fonction de désinfection mais cela conduisait à des résultats de recherche plus mauvais lors de la recherche de chaînes telles que "&" ou "+". J'ai regardé à travers le code et ne peux pas sembler trouver une désinfection évidente de ce champ. Je veux juste être sûr avant d'envoyer la requête de recherche d'un utilisateur à travers la fonction.

Merci

+0

Ce champ de requête fait partie du corps JSON, pourquoi Python ferait-il quelque chose? –

+0

Voici la source de ['search'] (https://github.com/elastic/elasticsearch-py/blob/master/elasticsearch/client/__init__.py#L453-L531) –

+0

Parce que c'est une bibliothèque destinée à l'abstraction une grande partie de la fonctionnalité ES. J'ai pensé qu'il est possible que ce soit l'itération du dictionnaire et la désinfection des entrées connues, de la même manière qu'un ORM le fait pour se protéger contre l'injection SQL. –

Répondre

0

Je vois trois autres approches possibles pour valider es contre une attaque inversée contre les indices, qui sont des bases de données, dans une attaque similaire à l'injection SQL:

  1. Comment pouvez-vous savoir Lucene et comment ça gère les attaques? Poursuivre l'architecture de Lucene et le code de support directement peut vous donner un aperçu de la façon dont es gère les attaques

  2. Essayez une approche SOLR, qui utilise également Lucene, et voyez comment SOLR gère les attaques; SOLR a pris du retard, puis a rattrapé et amélioré d'autres domaines; il y a des comparaisons intéressantes entre architecture SWOT es et SOLR

  3. allongea partie de la pile ELK - au moins Kibana et es, et tester Kibana, ce qui peut générer d'autres es/code Lucene que vous pouvez tester