ACL de requêtes
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 d’une 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 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 permet 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. 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, les ACL de requête doivent être mises en œuvre si nécessaire en fonction de la sensibilité des données.
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 avec un salaire contenu dans 2 limites. Unequery_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 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
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_matchest composé de : EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL.query_matchest 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 Réussite L’utilisateur peut soumettre des requêtes de correspondance Échec L’utilisateur ne sera pas en mesure de soumettre des requêtes de correspondance : - EST ÉGAL À
- NOT_EQUALS
- DANS
- NOT_IN
- SAMEAS
- NSAMEAS
- ANYTHING
- ISEMPTYSTRING
- ISEMPTY
- ISNOTEMPTY
- VALEUR ISNULL
- ISNOTNULL
query_range-
query_rangeest composé de tous les autres (STARTS_WITH, CONTIENT, >=, <= et autres) 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 Réussite 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, CONTIENT, >=, <=, etc. Le tri par colonne est restreint
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.