Vues :

Question :
Pourquoi le client Web ne s'affiche-t-il pas dans une iframe ?
Le client Web est une solution logicielle qui vous permet de gérer, d'éditer et de partager des documents. Vous pouvez installer le client Web sur votre propre serveur et y accéder via un navigateur. Vous pouvez également intégrer le client Web dans une iFrame pour l'intégrer dans un autre site web. Un iFrame est un élément HTML qui vous permet d'insérer une autre page web dans une page web.
Cependant, le client web peut ne pas être affiché dans un iFrame,si l'adresse de l'iFrame est différente de celle du client web. Cela est dû aux règles de sécurité du navigateur que vous utilisez. De nombreux fabricants de navigateurs ont renforcé les règles de sécurité de leurs navigateurs afin de prévenir les attaques intersites. Les attaques intersites sont des attaques au cours desquelles un pirate tente de voler ou de manipuler les données d'un autre site web en intégrant une iFrame ou un script dans un site web.
Pour empêcher ces attaques, de nombreux navigateurs utilisent la politique dite de "même origine" (Same-Origin Policy). Cette politique stipule qu'un iFrame ne peut charger que du contenu provenant de la même source que le site web qui contient l'iFrame. La source est déterminée par la combinaison du protocole, de l'hôte et du port. Si l'un de ces éléments est différent, la source est considérée comme différente et l'iFrame est bloquée.

Cela signifie que si vous appelez le client web avec une adresse différente de la page de votre iFrame, le client web ne s'affichera pas dans celle-ci. Par exemple, si vous appelez le client web avec l'adresse https://iframe.example.com mais que l'iFrame affiche l'adresse http://iframe.example.com, l'iFrame est bloquée parce que le protocole ( https vs. http ) est différent, ou si vous utilisez l'adresse http://webclient.exemple.com parce que l'hôte ( webclient vs. iframe ) est différent.

Réponse :
Pour résoudre ce problème, vous devez vous assurer que l'adresse du client web et l'adresse de l'iFrame ont la même source, c'est-à-dire qu'elles utilisent le même protocole, le même hôte et le même port. Vous pouvez également essayer d'utiliser un autre navigateur qui applique une politique de même origine moins stricte ou ajuster les paramètres de sécurité de votre navigateur pour autoriser les iFrames provenant d'autres sources. Cependant, vous devez savoir que cela présente un risque pour la sécurité, car cela peut vous rendre plus vulnérable aux attaques intersites.
Une autre façon de contourner la politique de la même origine consiste à utiliser des serveurs CORS ou des serveurs mandataires (proxy). CORS ( Cross-Origin Resource Sharing ) est un mécanisme qui permet aux serveurs web de déterminer quelles autres sources sont autorisées à accéder à leurs ressources. CORS utilise des en-têtes HTTP pour contrôler la communication entre les différentes sources. Si vous souhaitez utiliser CORS, vous devez configurer les en-têtes appropriés sur le serveur hébergeant le client web. Vous devez également vous assurer que le navigateur que vous utilisez prend en charge CORS.
Un serveur proxy est un serveur qui agit en tant qu'intermédiaire entre votre navigateur et le client web. Il reçoit votre demande et la transmet au client web comme si elle provenait de la même source. De cette manière, vous pouvez contourner la politique de la même origine en utilisant le serveur proxy comme intermédiaire. Cependant, vous devez trouver ou configurer un serveur proxy qui transmet vos demandes au client Web.

La configuration de CORS ou d'un serveur proxy est une question technique qui doit être prise en charge par votre administrateur de serveur ou votre fournisseur de services informatiques. DocuWare n'est pas responsable de la configuration ou du fonctionnement de votre serveur ou de votre réseau. DocuWare vous propose uniquement le Client Web en tant que solution logicielle que vous pouvez installer et utiliser sur votre serveur.

Informations complémentaires :
"Working with Same-Origin Policy Restrictions" - https://www.codecentric.de/wissens-hub/blog/working-origin-policy-restrictions
"Enabling cross-origin requirements (CORS) in ASP.NET Core" - https://learn.microsoft.com/de-de/aspnet/core/security/cors?view=aspnetcore-8.0

Les informations suivantes servent de solution de contournement ad hoc si vous êtes en train d'installer un système client et que vous êtes confronté à un scénario de domaine croisé .Avant que le système du client ne soit mis en service, le sujet interdomaine décrit ci-dessus doit avoir été mis en œuvre ailleurs !

Depuis DocuWare 6.5, le Client Web est livré avec des paramètres de sécurité renforcés.
Si le Client Web est intégré dans une iFrame d'une page qui ne contient pas le même domaine ou la même adresse (" cross domain "), l'accès est refusé par défaut.
Pour désactiver ce mécanisme de sécurité, le paramètre suivant doit être défini ( également après chaque mise à jour mineure ou majeure ) :

  • Enregistrer le fichier "C:\NProgram Files\NDocuWare\NWeb\NPlatform\NWeb.config"
    ou les versions plus anciennes "C:\NProgram Files (x86)\NDocuWare\NWeb\NPlatform\NWeb.config".
  • Ouvrez le fichier "Web.config"
  • Recherchez l'entrée suivante :
    <location path="WebClient">
    <system.webServer>
    <httpProtocol>
    <customHeaders>
    <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
    </httpProtocol>
    </system.webServer>
    </location>
  • Supprimez cette entrée ou commentez-la (comme dans cet exemple) :
    <!-- <location path="WebClient">
    <system.webServer>
    <httpProtocol>
    <customHeaders>
    <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
    </httpProtocol>
    </system.webServer>
    </location> -->
  • Sauvegardez vos modifications
  • Il n'est pas nécessaire de redémarrer un composant !
Le client Web peut maintenant être utilisé dans une iframe interdomaine et peut être affiché.
Si vous utilisez DocuWare 6.5, vous devez également installer le Hotfix 21:
https://dwsupport.blob.core.windows.net/supportdownloads/hotfixes/6.5/DW6.5_Hot21.zip
 
Avertissement : Si vous désactivez l'option X-Frame SAMEORIGIN, vous créez une faille de sécurité. Les pirates peuvent utiliser cette option pour envoyer des requêtes d'autres origines et les faire passer pour des exploits de cross site scripting.
Il est donc recommandé d' utiliser l'option SAMEORIGIN pour conserver et exécuter les deux applications (dans lesquelles DocuWare est intégré en tant qu'iFrame et DocuWare lui-même) sur le même serveur.
 
La dernière génération de navigateurs interdit également les communications interdomaines sans HTTPS .
Par conséquent, à partir de DocuWare 7.4, le protocole HTTP n'est pas pris en charge pour l'utilisation de DocuWare dans une iframe (sauf pour Firefox ou si le domaine de l'iframe est identique à celui du navigateur).
Voir les modifications techniques apportées à DocuWare 7. 4 .
 
Le KBA s'applique UNIQUEMENT aux organisations sur site.
 
Veuillez noter : Cet article est une traduction de l'anglais. Les informations contenues dans cet article sont basées sur la ou les versions originales des produits en langue anglaise. Il peut y avoir des erreurs mineures, notamment dans la grammaire utilisée dans la version traduite de nos articles. Bien que nous ne puissions pas garantir l'exactitude complète de la traduction, dans la plupart des cas, vous la trouverez suffisamment informative. En cas de doute, veuillez revenir à la version anglaise de cet article.