Présentation
(This document is being compiled from scattered documentation and source code and most of the information in it has not been verified. Please do not depend on anything in it being correct for security.)
Afin d'empêcher le navigateur d'être utilisé comme un outil permettant aux sites Web d'obtenir des privilèges qui doivent rester du domaine de l'utilisateur (tels qu'être derrière un pare-feu ou tirer avantage des cookies utilisateur), Les navigateurs Web restreignent les droits de pages Web lorsqu'elles accèdent à des ressources d'autres domaines. Ces restrictions s'appliquent également aux services Web.
Cependant, les services Web peuvent être destinés à être accessible depuis d'autres domaines, voire depuis n'importe quel domaine. Mozilla permet aux sites d'hébergement des services Web de lui indiquer quels services Web sont accessibles depuis d'autres sites. Ils y parviennent en créant un fichier nommé web-scripts-access.xml
à la racine du serveur qui accorde les permissions d'accès aux services Web par les domaines extérieurs. Par exemple, pour déterminer quels sites Web peuvent accéder à un service situé à l'adresse <tt>https://www.example.com/dir1/dir2/service</tt>, Mozilla chargera le fichier <tt>https://www.example.com/web-scripts-access.xml</tt>, qui pourra choisir de déléguer la décision au fichier <tt>https://www.example.com/dir1/dir2/web...pts-access.xml</tt>.
Format du fichier web-scripts-access.xml
Le fichier web-scripts-access.xml
est un document XML. Toutes erreurs dans la syntaxe XML, aussi bien que tout échec to follow the format, fera que le document sera ignoré.
L'élément webScriptAccess
Son élément racine doit être une élément webScriptAccess
de l'espace de nommage https://www.mozilla.org/2002/soap/security
. Cet élément doit avoir au moins un élément descendant delegate
ou n'importe quelle quantité (0 ou plus) d'élément descendant allow
. Tous ces éléments descendants doivent être dans le même espace de nommage que le parent, et doivent être vide.
L'élément delegate
La présence d'un élément delegate
signifie que le navigateur pourra déléguer les contrôles d'accès à un fichier web-scripts-access.xml
situé dans le répertoire du service Web. Par exemple, lors de l'accès à un service Web situé à l'adresse https://www.example.com/dir1/dir2/service
, si le fichier d'accès situé à l'adresses https://www.example.com/web-scripts-access.xml
contient un élément delegate
, Mozilla utilisera plutôt https://www.example.com/dir1/dir2/web...ipt-access.xml
pour déterminer si l'accès est autorisé ou non. Si un tel fichier n'existe pas, alors l'accès sera interdit.
L'élément allow
Si aucun élément delegate
n'est présent ou si e service Web est dans le même répertoire que le fichier web-script-access.xml
, alors les éléments allow
seront traités. Si le fichier existe mais qu'il ne contient pas d'élément allow
, alors tous les accès seront autorisés. Si des éléments allow
existent, alors l'accès sera permis si au moins l'un d'entre eux l'autorise.
L'attribut type
L'attribut type
de l'élément allow
peut prendre les valeurs suivantes :
- any
- Signifie que l'élément
allow
s'applique à tous les services qui utilisent le fichierweb-scripts-access.xml
pour les vérifications de sécurité. Il pourra y avoir bien plus de services Web dans l'avenir qu'il n'en existe à l'heure actuelle. Ceci est équivalent à l'absence d'attributtype
. - load (Non implémenté)
- Capacité à charger des documents via XMLHttpRequest ou tout autre mécanisme similaire.
- soap
- Requêtes SOAP sans vérification des en-têtes
- soapv
- Requêtes SOAP avec vérification des en-têtes
L'attribut from
L'attribut from
de l'élément allow
indique les sites appelants auxquels s'applique l'élément allow
. Si aucun attribut from
n'existe alors l'élément allow
s'applique à tous les sites. Autrement, l'attribut from
donne une URL à valider, qui peut contenir jusqu'à deux astérisques (*
) qui correspondent à n'importe quel caractère. La validation se fait par rapport à une URL pour laquelle le répertoire et le fichier ont été supprimés, ainsi valider une page spécifique fera échouer la validation dans son ensemble. (Is this correct?)
Exemples de fichier web-scripts-access.xml
Ces exemples n'ont pas été testés ! Ils devraient l'être afin de s'assurer qu'ils font bien se qu'ils sont supposé faire.
Autoriser l'accès depuis n'importe quelle page Web à tous les services Web d'un site
Notez que ceci est une chose sensible à ne faire que le site ne sert pas de contenu basé sur les cookies, l'authentification HTTP, l'adresse IP/Domaine d'origine, ou tout autre méthode d'authentification.
<webScriptAccess xmlns="https://www.mozilla.org/2002/soap/security"/></pre>
Autoriser l'accès aux services SOAP depuis un répertoire de services Web
Pour autoriser l'accès aux services uniquement depuis un répertoire donné (par exemple, le répertoire où se trouve des services sécurisés, publiques et ne nécessitant pas d'authentification), vous avez besoin d'un fichier web-scripts-access.xml
dans le répertoire racine du serveur et un autre dans le répertoire contenant les services. Dans le répertoire racine du serveur :
<webScriptAccess xmlns="https://www.mozilla.org/2002/soap/security"> <delegate/> <allow type="none"/> </webScriptAccess>
Et dans le répertoire des services :
<webScriptAccess xmlns="https://www.mozilla.org/2002/soap/security"> <allow type="soapv"/> <allow type="soap"/> </webScriptAccess>
=== Good examples === (Needed.)
Références
- Nouveau modèle de sécurité des services Web, la proposition originale pour le format du fichier
web-scripts-access.xml
- Feuille de route des services Web, documentée lorsque les fonctionnalités liées aux services Web, incluant le modèle de sécurité, ont été supportées pour la première fois
Autres ressources
- Documentation de crossdomain.xml, un format de fichier similaire utilisé par Macromedia Flash Player
Interwiki Language Links