browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

Mapserver, PostGis et les mots de passe…

Posted by on 18 août 2009

Lorsqu’on utilise Mapserver avec PostGIS, il faut créer dans le mapfile l’objet LAYER sous cette forme:

LAYER
NAME "Word"
  PROJECTION
    "init=epsg:4326"
  END
  STATUS ON
  METADATA
    "wms_title" "Le monde"
    "wms_feature_info_mime_type" "text/html"
    "wms_include_items" "all"
    "wms_srs" "epsg:4326"
  END
  CONNECTIONTYPE POSTGIS
  CONNECTION "host=127.0.0.1 dbname=lupis password=toto user=postgres"
  DATA "the_geom FROM (SELECT id, name, the_geom FROM  spatial_reference_unity ) AS QUERY USING srid=4326 USING UNIQUE id"
  TYPE POLYGON
  OPACITY 100
  CLASS
    COLOR 255 255 255
    OUTLINECOLOR 0 0 0
  END
END

Il suffit, pour n’importe quel utilisateur, de récupérer l’url du fichier MAP (par exemple http://localhost/france.map) pour récupérer votre mot de passe de la base de données PostGIS (ici pour l’exemple « toto »). Il s’agit d’une faille de sécurité majeure pour votre système d’information.

La solution que j’utilise est l’outil msencrypt fourni par Mapserver (depuis sa version 4.10).

Voici les étapes à suivre pour crypter le mot de passe dans le lien ci-dessus:

  1. Générer une clé de chiffrement (à noter que cette clé ne doit pas être stockée n’importe où sur votre serveur Web, mais bien dans un répertoire à accès restreint):
    msencrypt -keygen « D:\site\
    restricted_folder\mykey.txt »
    Ce fichier de clé généré contient quelque chose comme:
    2137FEFDB5611448738D9FBB1DC5905
  2. Crypter le mot de passe de votre base de données PostGis en utilisant:
    msencrypt -key « D:\site\
    restricted_folder\mykey.txt » « toto »
    Ceci retourne le mot de passe crypté qui doit ressembler à cela:
    8A1B6A098F1BF956
  3. Modifier le mapfile pour s’assurer que le ficheier de clé ‘mykey.txt’ peuvent être trouvé:utiliser la variable d’environnement « MS_ENCRYPTION_KEY » . Le paramètre de configuration à l’intérieur de l’objet MAP peut être utilisé pour définir une variable d’environnement:
    MAP

    CONFIG « MS_ENCRYPTION_KEY » « D:/site/restricted_folder/myPostGisKey.txt »

    FIN # mapfile
  4. Modifier la chaîne connexion de la couche d’utiliser le mot de passe généré clés, en prenant soin d’utiliser les « { } » entre crochet autour de la clé:
    CONNECTION « host=127.0.0.1 dbname=lupis password={8A1B6A098F1BF956} user=postgres »

C’est tout !

Référence: http://mapserver.org/utilities/msencrypt.html

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>