ACL de requête
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.
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. UneACL 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
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 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_rangeest 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
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.