Pour accéder à des services sécurisés (basés sur des jetons ou des informations d'identification), Esri recommande d'utiliser des fichiers proxy ( exemple .net github ). Lorsque vous acheminez des demandes via le proxy, vous pouvez demander des services sécurisés au nom du client sans exposer vos informations d'identification. Vous pouvez définir une propriété appelée allowedReferers
et attribuer une liste d'URL de référence pour lesquelles le proxy fonctionnera. Fondamentalement, le proxy ne fera aucune demande de renvoi d'URL non définies. S'il est défini sur '*'
, toute demande de renvoi sera traitée.
Le problème est; l'en-tête demandeur peut être usurpé facilement par un pirate en définissant simplement une fausse propriété HTTP Referer . Dans cette situation, ils peuvent accéder à des services sécurisés en acheminant toutes leurs demandes via le proxy et en définissant l'en-tête du référent sur une adresse valide.
Je recherche des recommandations sur la meilleure façon de contourner ce problème. Des recommandations?
agstoken
clé. Cela n'ajoute pas beaucoup de sécurité supplémentaire, mais au moins le jeton n'apparaît pas dans la chaîne de requête.Réponses:
J'héberge le proxy Java dans Apache Tomcat qui fournit une page de connexion. Le proxy ArcGIS s'exécute dans le même contexte d'application que la page de connexion. De cette façon, mes utilisateurs ont accès aux informations d'identification stockées dans une base de données distincte et sécurisée. Tomcat effectue la gestion de session habituelle tandis que le proxy ArcGIS légèrement modifié gère les informations d'identification et les jetons ArcGIS cachés. Tout cela se fait via HTTPS.
Le résultat est que:
la source
Je pense que cette phrase est la clé. Lorsque le proxy s'authentifie auprès du serveur SIG, le proxy est-il configuré avec des informations d'identification? Si tel est le cas, et que ces informations d'identification ont accès au service de carte demandé, il semblerait que cela "fonctionne comme prévu".
Si le proxy stocke / transmet des informations d'identification, le proxy est plus soucieux de sécuriser les informations d'identification que de sécuriser les données. Imaginez un site intranet d'entreprise qui affiche les données cartographiques d'un service de carte sécurisé.
La déclaration ci-dessus signifie-t-elle qu'un attaquant extérieur peut atteindre votre proxy directement? Si c'est le cas, vous avez plus à vous soucier qu'un en-tête HTTP usurpé.
Les utilisateurs, le proxy et le serveur SIG sont-ils tous à l'intérieur de votre réseau ou les utilisateurs utilisent-ils le proxy pour se connecter aux services SIG en dehors du réseau? La connaissance de certains détails de la topologie de votre réseau pourrait vous aider à obtenir de meilleures réponses.
modifier: Si vous avez une application Web publique qui récupère des ressources à partir d'un serveur SIG sécurisé à l'intérieur d'un réseau, vous souhaitez probablement un proxy inverse plutôt qu'un proxy direct.
la source