xAjaxSec
xAjaxSec est une extension pour MODX permettant d'ajouter une couche de sécurisation pour les appels AJAX publics ou restreints (comptes utilisateurs).
Le mécanisme de partage de ressources d'origine croisée (CORS) n'empêche pas l'accès direct à une ressource ayant la même origine/destination. xAjaxSec permet de palier à ce problème en autorisant l'accès aux ressources uniquement via AJAX tout en améliorant la faible observabilité des ressources et des données publiques conçues pour être accessibles sur une page, dans un contexte ou un scénario spécifique (sécurisation par opacification).
Par exemple xAjaxSec rend impossible tout copier/coller ou interception d'un fichier de données au format JSON (exemples disponibles dans la documentation).
Fonctionnalités
Sécurisation par clé
Une clé est postée lors de la requête AJAX est testée par xAjaxSec. Si la clé n'est pas correcte, la réponse AJAX ne sera pas envoyée.
Vérification du domaine
Une comparaison du domaine défini dans les otpions de contexte (Context settings → http_host), indépendante du mécanisme CORS, avec le domaine de l'URL cible est faite. Si le test de correspondance échoue, aucune réponse AJAX ne sera envoyée.
Rejet des accès directs
Les tentatives d'accès direct à l'URL de la ressource cible retournent une page d'erreur de type 401 (accès non-autorisé). L'URL de redirection est défini par les ID des clés de contexte suivantes, dans cet ordre de priorité :
- unauthorized_page
- error_page
- site_start
Rejet des moteurs de recherches
Rejet actif de l'indexation par les moteurs de recherches par l'URL cible (X-Robots-Tag: noindex, nofollow, noarchive, noimageindex).
Cryptage des réponses
Une option permet de crypter selon le protocole AES (Open SSL doit être installé sur le serveur) les réponses AJAX entre le serveur et le client. Le contenu des réponses sera crypté dans les consoles d'outils de développement (à ne pas confondre avec le protocole https qui peut être utilisé conjointement).
La documentation est disponible en langue anglaise, uniquement.
Documentation & exemplesDocumentation
Licence