Un predicato è una condizione logica che si valuta come vera o falsa. Nei sistemi di sicurezza, i predicati vengono usati per decidere se un utente può accedere a un record, eseguire un'azione o corrispondere a un filtro. Esempi comuni includono il controllo di un ruolo, il confronto di un timestamp o la verifica che una richiesta provenga da un tenant approvato. Quando il predicato è vero, l'accesso continua; quando è falso, i dati o l'azione vengono bloccati.
I predicati sono importanti perché l'autorizzazione spesso dipende da essi. Nei database, nelle API e nei motori di policy, un piccolo errore nella logica del predicato può indebolire un controllo o invertirne il significato. Gli attaccanti cercano questi bug testando i percorsi negati, i parametri alterati e le condizioni annidate che si comportano in modo diverso rispetto alla regola prevista. I difensori dovrebbero esaminare con attenzione i filtri complessi, soprattutto quando la policy viene tradotta in un linguaggio di query o riscritta dai framework, e convalidare sia i casi consentiti sia quelli negati durante i test.


