ACL de requêtes

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 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 sur query_match. Les ACL de requête permettent un contrôle plus spécifique des requêtes utilisateur, en limitant ou en activant l’accès en fonction de leur configuration. Les ACL de requête sont des outils puissants contre les attaques de requête aveugle, où un attaquant interroge aveuglément les données pour extraire des informations des résultats, même lorsqu’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 mise en œuvre si nécessaire en fonction de la sensibilité des données. Lorsqu’il existe un accès partiel/conditionnel aux lignes et à leurs colonnes dans les tables, en particulier lorsque cet accès n’est pas appliqué 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 :
    Envisagez des ACL de requête lorsque certains utilisateurs ont accès à certaines lignes ou colonnes et pas à d’autres.

    Contrôle de la requête de paie

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

    Contrôle de requête RH

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

    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 faite des « opérateurs sûrs », dans le sens où ils sont construits 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
    • SAMEAS
    • NSAMEAS
    • RIEN
    • CHAÎNE D’OBJETS ISEMPTYSTRING
    • ISEMPTY
    • ISNOTEMPTY
    • ISNULL
    • ISNOTNULL
    query_range

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

    Résultat de l’évaluation Résultat
    Succès L’utilisateur peut soumettre des requêtes de plage et le tri est illimité
    É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 des ACL de requête sont définies, elles remplacent le comportement par défaut.