20250918115625_e0feba10-3e53-41a5-a18c-a47c175dc5d6.sql 567 B

123456789101112131415
  1. -- Corriger la vulnérabilité de sécurité de la fonction is_super_user
  2. -- en ajoutant SET search_path = public pour empêcher les attaques par manipulation du search_path
  3. CREATE OR REPLACE FUNCTION public.is_super_user(user_email text DEFAULT NULL::text)
  4. RETURNS boolean
  5. LANGUAGE sql
  6. STABLE SECURITY DEFINER
  7. SET search_path = public
  8. AS $function$
  9. SELECT EXISTS (
  10. SELECT 1 FROM public.super_users su
  11. JOIN auth.users u ON u.id = su.user_id
  12. WHERE u.email = COALESCE(user_email, (SELECT email FROM auth.users WHERE id = auth.uid()))
  13. );
  14. $function$;