Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 05 July 2010 15:09

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

Sécurité accès WMS - MAPSERVER

Bonjour,

J'ai une appli OpenLayers qui tourne sur un serveur hébergeant une BD PostGis.

Je souhaiterai ne permettre qu'un accès WMS\WFS\GetFeature entre mon appli et ma base de données (qui sont sur la même machine) et paramétrer le tout de façon à ce que toute personne qui questionnerait Mapserver d'une autre façon depuis son poste (en tapant une requête dans son navigateur par exemple) soit bloquée.

D'après-vous qu'elles sont les solutions ? (htaccess ...)

Merci bien,

Rémi

Hors ligne

 

#2 Mon 05 July 2010 16:55

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Sécurité accès WMS - MAPSERVER

Bonjour,

Ce n'est pas possible car OpenLayers est lancé sur le poste du client, bloqué les IP extérieure bloquerait ton appli web.

Une solution (mais loin d'être infaillible) est de créer un prox sur ton serveur qui va vérifier que certain paramètres (user/login) sont présent dans l'url des requêtes envoyé par OL.

Côté OL il faut rajouter dans les options de l'objet LAYER.WMS() les paramètres/valeurs pour l'identification. Cela sera lisible par tous les curieux qui liront ton code js. Pour empêcher cela tu peux compresser ton code js (voir jsbuild pour cela).

Des méthodes pour rendre illisible ton code js existent aussi.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 05 July 2010 18:27

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Sécurité accès WMS - MAPSERVER

Bonjour,

Tu peux tester plusieurs approches néanmoins :
- Désactiver le service WMS dans ton fichier .map (en enlevant les metadata qui commencent par wms ou ows), et utiliser dans OpenLayers un layer de type MapServer qui pointera directement vers mapserv en mode cgi (en non en mode WMS Standardisé). De la sorte, tu élimines déjà tous les clients WMS (les clients lourds, les serveurs carto externes etc).
- Dans apache, ajoute une vérification sur le referer (c'est-à-dire la page qui appelle le script). Exemple :
SetEnvIf Referer "^http://mon\.serveur\.fr/" access_ok=1
Order Allow,Deny
Allow from env=access_ok

Ainsi tu n'autorises que les pages issues de mon.serveur.fr à accéder à ton script (mapserv donc), et tu élimines les utilisations "frauduleuses" depuis un autre site web.

On peut encore accéder à tes ressources en utilisant des librairies telles que Curl ou python-urllib (avec lesquelles on peut facilement changer le referer et le user-agent pour des valeurs de son choix), mais tu auras déjà bien restreint le périmètre.

Bon courage,

Guillaume

Hors ligne

 

#4 Thu 08 July 2010 17:32

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

Re: Sécurité accès WMS - MAPSERVER

Merci à vous deux pour la clarté de vos réponses !

Deux questions subsidiaires pour vous :

- Comment interroger les attributs d'une couche new OpenLayers.Layer.MapServer, j'utilisais le WMSGetFeatureInfo qui n'est plus utilisable en dehors de couches WMS.

- Si j'ai bien compris, rendre une couche interrogeable en getfeature info (type gml) ça équivaut implicitement à la rendre diffusable en tant que service WFS ?

Dernière modification par Remi01 (Thu 08 July 2010 17:33)

Hors ligne

 

#5 Tue 27 July 2010 09:20

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Sécurité accès WMS - MAPSERVER

Remi01 a écrit:

- Comment interroger les attributs d'une couche new OpenLayers.Layer.MapServer, j'utilisais le WMSGetFeatureInfo qui n'est plus utilisable en dehors de couches WMS.


Je crois qu'il n'y a rien à faire smile

Remi01 a écrit:

- Si j'ai bien compris, rendre une couche interrogeable en getfeature info (type gml) ça équivaut implicitement à la rendre diffusable en tant que service WFS ?


En tant que service WMS wink

http://georezo.net/wiki/main:standards: … ons_du_wms

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Tue 14 September 2010 14:53

arnojc
Juste Inscrit !
Date d'inscription: 23 Jun 2009
Messages: 2

Re: Sécurité accès WMS - MAPSERVER

Bonjour,

Yves a écrit:

Une solution (mais loin d'être infaillible) est de créer un prox sur ton serveur qui va vérifier que certain paramètres (user/login) sont présent dans l'url des requêtes envoyé par OL.


Je me permet de relancer la discussion car je voudrais savoir ce que tu entends, Yves par : loin d'être infaillible ?

Je me dirige vers une utilisation de secureows. Cela ne suffit pas ? Doit-on ajouter d'autres "barrières" ?

En fait, au départ je me dirigeais vers la solution du referrer mais la "faille" liée à la librairie Curl me refroidie légèrement. Sinon, existe t-il une façon de la bloquer ?

Merci pour vos infos éclairées et bonne continuation

Arno

Hors ligne

 

#7 Tue 14 September 2010 15:50

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Sécurité accès WMS - MAPSERVER

Bonjour,

Je veux dire que si tu écris en dure ou non dans le code javascript le login/mpd cela se verra dans les requêtes, soit en utilisant FireBug soit en utilisant des logiciels qui suivent les appels entre un client et un serveur.

Généralement les sécurités mises en place servent uniquement comme base légale pour attaquer la personne qui a "volé" les données soit pour freiner les ardeurs.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB