L’en-tête HTTP Feature-Policy (aujourd’hui renommé Permissions-Policy) vous offre un contrôle granulaire des API du navigateur (géolocalisation, caméra, microphone, paiement, fullscreen…). En limitant ou interdisant ces fonctionnalités, vous réduisez la surface d’attaque et protégez la vie privée de vos visiteurs.
Qu’est-ce que le header Feature-Policy / Permissions-Policy ?
Spécifié par le W3C, cet en-tête définit, via une série de directives, quelles API sont autorisées, restreintes ou interdites pour votre domaine et ses sous-ressources.
Pourquoi implémenter ?
- Renforcez la sécurité en bloquant les API non nécessaires.
- Améliorez la confidentialité en désactivant les capteurs sur des pages non critiques.
- Limitez les attaques drive-by où un script malveillant pourrait activer une API.
- Appliquez le principe du moindre privilège.
Directives clés et exemples
- geolocation ‘self’ : géolocalisation uniquement sur votre domaine.
- camera ‘none’ : accès caméra interdit.
- microphone ‘none’ : accès micro interdit.
- payment ‘self’ : API Payment sur votre domaine.
- fullscreen * : fullscreen autorisé partout.
Exemple strict en Feature-Policy :
Feature-Policy: geolocation 'self'; camera 'none'; microphone 'none'; payment 'self'; fullscreen *
Nouvelle syntaxe Permissions-Policy :
Permissions-Policy: geolocation=(self), camera=(), microphone=(), payment=(self), fullscreen=*
Étapes de déploiement
- Audit de vos usages d’API.
- Rédaction en mode report-only pour collecter les violations.
- Ajustement jusqu’à absence d’alertes.
- Passage en mode bloquant en production.
- Suivi continu via logs et mises à jour.
Exemples de configuration
Nginx
add_header Permissions-Policy "geolocation=(self), camera=(), microphone=(), payment=(self), fullscreen=*" always;
Apache (.htaccess)
<IfModule mod_headers.c>
Header always set Permissions-Policy "geolocation=(self), camera=(), microphone=(), payment=(self), fullscreen=*"
</IfModule>
WordPress (functions.php)
add_action('send_headers', function(){ header("Permissions-Policy: geolocation=(self), camera=(), microphone=(), payment=(self), fullscreen=*"); });
Nos services de mise en place
Chez Dimension Internet, nous réalisons :
- l’audit de vos usages d’API,
- la définition et le déploiement de la politique en report-only puis en mode bloquant,
- les tests en préproduction,
- le monitoring continu et les mises à jour.
Conclusion
L’en-tête Feature-Policy (ou Permissions-Policy) est un levier puissant pour verrouiller les API du navigateur, réduire la surface d’attaque et préserver la confidentialité des utilisateurs. Dimension Internet vous accompagne de l’audit initial à la maintenance pour un déploiement optimal.