[AlternC-dev] sécurité et binaires autorisés

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

Fil fil at rezo.net
Mar 12 Sep 23:59:01 CEST 2006


Pour permettre à SPIP de faire ses mises à jour directement depuis
l'interface privée (cf. mail spip-zone ci-dessous), j'ai ajouté svn dans les
binaires autorisés d'alternc.

mais du coup, plus de sécurité... car il devient possible de passer des
répertoires d'un autre user à la commande shell.

Existe-t-il une méthode pour mettre un truc bien contrôlé ??  du genre, un
wrapper écrit en shell, qui regarde les argument et ne lance la commande que
si ces arguments sont dans le répertoire user...

en gros:   svn update spip/  => ok
           svn update ../../autre/user/alternc/ => t'es mort

Le problème est générique, en fait, donc vous avez déjà dû le rencontrer ?
(J'ai le même scrupule sur la commande tidy)

Suffit-il de parser les arguments à la recherche de ".." et de refuser dans
ce cas là ?





----- Forwarded message from Fil <fil at rezo.net> -----

Date: Tue, 12 Sep 2006 23:50:26 +0200
From: Fil <fil at rezo.net>
To: SPIP Zone <spip-zone at rezo.net>
Subject: [SPIP Zone] plugin "svn update"

Coucou,

je viens de faire un plugin "svn update" à partir de celui de Cedric ; je
n'ai pas pris la même approche, voici les différences :

- là où il ajoutait un bouton d'admin "svn update" sur les pages publiques,
  j'ai préféré une page spécifique dans l'espace privé
  (ecrire/?exec=svn_update)

- on peut updater SPIP, le répertoire de squelettes, le répertoire de
  plugins, etc : il suffit pour cela de lister les répertoires branchés
  dans mes_options, sous la forme 
        define('_SVN_UPDATE_DIRS', './:plugins/');

  (ici, la racine -- donc SPIP -- et le répertoire de plugins ; par défaut
  seul ./ est prévu)

- seuls les admins numérotés explicitement sont autorisés à lancer la
  procédure ; par défaut c'est l'admin numéro 1, ça se configure sous
  forme de liste de numéros :
        define('_SVN_UPDATE_AUTEURS', '1:3');


A noter, sous AlternC ça fonctionne si svn fait partie des binaires
autorisés (ce qui est contradictoire avec le mode de sécurité d'AlternC...
donc possible uniquement sur des machines qui font confiance à leurs
hébergés). Je vais voir avec les gens d'AlternC s'ils ont une solution à ce
problème...

-- Fil




Plus d'informations sur la liste de diffusion Dev