ACL de requête

  • Rversion finale: Xanadu
  • Mis à jour 4 sept. 2024
  • 2 minutes de lecture
  • Les ACL de requête vous permettent de définir un contrôle d’accès plus granulaire en définissant explicitement qui peut interroger les données.

    Qu’est-ce qu’une ACL de requête ?

    L’opération des ACL de requête est définie sur query_range ou query_match. Les ACL de requête permettent un contrôle plus spécifique des requêtes utilisateur, en restreignant ou en activant l’accès en fonction de leur configuration. Les ACL de requête sont des outils puissants contre les attaques par requête aveugle, où un attaquant interroge aveuglément les données pour extraire des informations des résultats, même s’il ne peut pas voir les valeurs.

    Quand utiliser une ACL de requête

    Lorsqu’une colonne contient des valeurs sensibles et autorise un accès partiel/conditionnel aux données, une ACL de requête doit être envisagée et implémentée si nécessaire en fonction de la sensibilité des données. En cas d’accès partiel/conditionnel aux lignes et à leurs colonnes dans les tables, en particulier lorsque cet accès n’est pas renforcé par des filtres de données, des ACL de requête doivent être implémentées si nécessaire en fonction de la sensibilité des données.

    Remarque :
    Prenez en compte les ACL de requête lorsque certains utilisateurs ont accès à certaines lignes ou colonnes et pas à d’autres.

    Contrôle de requête de paie

    Je peux voir une ligne dans le tableau des salaires avec mon salaire, mais il n’y a aucune raison pour que je puisse émettre des requêtes de plage pour interroger les utilisateurs avec un salaire contenu dans 2 limites. Une ACL query_range sur le salaire m’empêcherait d’émettre cette requête.

    Contrôle de requête RH

    Je peux voir tous les hr_profiles, mais je ne peux voir le SSN que pour moi-même. Je n’ai aucune tâche à interroger le SSN, et les ACL de requête doivent m’empêcher d’exécuter des requêtes sur le SSN d’autres profils RH pour essayer d’extraire des mappages SSN.

    Comportement de l’ACL de requête

    Les ACL de requête utilisent des opérations query_match et query_range pour un comportement d’interrogation de table sécurisé et granulaire. Leurs comportements sont décrits ci-dessous :
    query_match

    query_match est composé de : EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL. query_match est fait des « opérateurs sûrs », dans le sens où ils sont conçus pour récupérer des enregistrements spécifiques et ne peuvent pas être exploités pour en renvoyer d’autres.

    Résultat de l’évaluation Résultat
    Succès L’utilisateur peut soumettre des requêtes de correspondance
    Échec L’utilisateur ne sera pas en mesure de soumettre des requêtes de correspondance :
    • ÉGALE
    • NOT_EQUALS
    • DANS
    • NOT_IN
    • IDENTIQUES
    • NSAMEAS (en anglais seulement)
    • RIEN
    • CHAÎNE ISEMPTYSTRING
    • EST VIDE
    • ISNOTEMPTY
    • ISNULL (en anglais seulement)
    • ISNOTNULL (en anglais seulement)
    query_range

    query_range est composé de tous les autres (STARTS_WITH, CONTAINS, >=, <=, etc.) qui sont plus dangereux car ils permettent aux utilisateurs de demander plus d’enregistrements en ajustant les valeurs de limite.

    Résultat de l’évaluation Résultat
    Succès L’utilisateur peut soumettre des requêtes de plage et le tri n’est pas restreint
    Échec L’utilisateur ne sera pas en mesure de soumettre des requêtes de plage avec (STARTS_WITH, CONTAINS, >=, <=, etc. Le tri par colonne est restreint
    Important :

    Les ACL de requête (query_match et query_range) sont par défaut une ACL star.star qui délègue l’accès en lecture. Cela signifie que, lorsque les ACL sont appliquées aux requêtes, si aucune ACL de requête n’a été créée, l’accès en lecture à la colonne est évalué ; si les ACL de requête sont définies, elles remplacent le comportement par défaut.