IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Limiter les CGI sur 1 répertoire seulement


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut Limiter les CGI sur 1 répertoire seulement
    Bonjour à tous,

    J'aimerais cantonner l'exécution des scripts cgi aux seuls répertoires se nommant CGI et ce pour tous les sites hébergé sur mon serveur.

    Voilà ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ScriptAlias /CGI/ "/home/*/CGI/"
    <Directory /home/*/CGI>
     AllowOverride None
     Options ExecCGI
     Order allow,deny
     Allow from all
    </Directory>
    Quelqu'un pourrait m'expliquer pourquoi ça ne fonctionne pas ? Je comprends rien du tout.

    Merci pour votre aide.

  2. #2
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    J'ai fini par trouver. Mais bon j'en comprends pas plus pour autant

    Voilà ce que c'est fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <Directory />
     AllowOverride None
     Options ExecCGI
     Order allow,deny
     Allow from all
    </Directory>
     
    <Directory /home/*/CGI>
     AllowOverride None
     Options ExecCGI
     Order allow,deny
     Allow from all
    </Directory>
    J'interdis les cgi partout sauf dans le répertoire CGI qui est contenu par les utilisateurs.

    Je me félicite, d'avoir trouvé la réponse

  3. #3
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Bonjour a tous,

    Je me permets de rouvrir ce thread parce qu'en fait ce que j'ai voulu faire ne fonctionne pas.
    En gros, voila ce que j'essaie de faire en vain :
    • un site principal nomme siteprincipal.com
    • site1.com
    • site2.com
    • user1.siteprincipal.com qui est site1.com mais accessible de cette maniere
    • user2.siteprincipal.com qui est site2.com mais accessible de cette maniere
    • un repertoire personnel pour le root accessible par siteprincipal.com:8080
    • les scripts CGI ne fonctionnent que dans le repertoire CGI


    Voila mon httpd.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    NameVirtualHost *:80
    <VirtualHost *:80>
        DocumentRoot /home/siteprincipal
        ServerName siteprincipal.com
        ErrorLog logs/siteprincipal.com-error_log
        CustomLog logs/siteprincipal.com-access_log common
     
        <Directory /home/siteprincipal/restreint>
        	Options none
        	Authname prive
        	Authtype basic
        	AuthUserFile /home/conf_restreint 
        	Require valid-user
        	Order allow,deny 
        	Allow from all
        </Directory>
    </VirtualHost>
     
    Listen *:8080
    <VirtualHost *:8080>
        DocumentRoot /home/personnel
        ServerName siteprincipal.com
        ErrorLog logs/siteprincipal.com-error_log
        CustomLog logs/siteprincipal.com-access_log common
    <Directory /home/personnel/>
        AllowOverride None
        Order allow,deny
        allow from all
    </directory>
    </VirtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site1
        ServerName site1.com
        ErrorLog logs/site1.com-error_log
        CustomLog logs/site1.com-access_log common
    </VirtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site1
        ServerName user1.siteprincipal.com
        ErrorLog logs/site1.com-error_log
        CustomLog logs/site1.com-access_log common
    </VirtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site2
        ServerName site2.com
        ErrorLog logs/site2.com-error_log
        CustomLog logs/site2.com-access_log common
    </VirtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site2
        ServerName user2.siteprincipal.com
        ErrorLog logs/site2.com-error_log
        CustomLog logs/site2.com-access_log common
    </VirtualHost>
     
    <Directory /home/*>
        AllowOverride None
        Options -ExecCGI
        Order deny,allow
        deny from all
    </directory>
     
    <Directory /home/*/CGI>
        AllowOverride None
        Options +ExecCGI
        Order allow,deny
        allow from all
    </directory>
    Je ne comprends pas pourquoi ca ne fonctionne pas. Quelqu'un peut-il m'eclairer ?
    Desole pour les accents, je ne sais pas pourquoi, mais mes boutons avec les accents ne fonctionnement plus...

    Merci pour votre aide.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par LhIaScZkTer Voir le message
    Je ne comprends pas pourquoi ca ne fonctionne pas.
    Moi non plus, vu que tu ne décris absolument pas ce qu'il se passe. Quels sont les symptômes ? Quelles URL utilises-tu pour tester et quel comportement souhaiterais-tu voir pour tes différents sites (avec des URL d'exemple, de préférence).

  5. #5
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Merci pour ta réponse _Mac_,

    Ce que je souhaiterais, c'est mettre en place une délégation qui permettrait aux utilisateurs de créer un répertoire pour héberger leurs scripts. Donc dans les autres répertoires les scripts seront interdit.

    Pour site1.com qui est un virtualhost :
    http://site1.com les pages .php ne fonctionneront pas

    Mais :
    http://site1.com/CGI les pages .php fonctionneront

    J'ai donc ajouté un conteneur directory :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Directory />
        AllowOverride Options
        Options None
        Order deny,allow
        deny from all
    </directory>
    En faisant ça, apache ne se connecte plus au ServerName principal, mais au premier virtualHost. J'ai donc dû définir un virtualHost pour siteprincipal.com.

    En plus, le code php est toujours exécuté et ce, peu importe le répertoire, ce qui est encore plus embêtant.

    En fait, je ne comprends plus rien et je ne sais même plus ce que je voulais faire, il y a tout qui bug...

  6. #6
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Je crois que je vais devenir fou.

    Voila ce que j'ai dans mon fichier hosts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    127.0.0.1 siteprincipal.com
    127.0.0.1 user1.siteprincipal.com
    127.0.0.1 user2.siteprincipal.com
    127.0.0.1 site1.com
    127.0.0.1 site2.com
    Voila mon fichier httpd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    ServerName siteprincipal.com
    DocumentRoot /home/siteprincipal
     
    NameVirtualHost *:80
    <virtualHost *:80>
    </virtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site1
        ServerName site1.com
        ErrorLog logs/site1.com-error_log
        CustomLog logs/site1.com-access_log common
    <Directory /home/site1>
        Options None
        Order allow,deny
        allow from all
    </directory>
    <Directory /home/site1/CGI>
        AllowOverride None
        Options ExecCgi
        Order allow,deny
        allow from all
    </directory>
    </VirtualHost>
     
    <VirtualHost *:80>
        DocumentRoot /home/site1
        ServerName user1.siteprincipal.com
        ErrorLog logs/site1.com-error_log
        CustomLog logs/site1.com-access_log common
    <Directory /home/site1>
        Options None
        Order allow,deny
        allow from all
    </directory>
    <Directory /home/site1/CGI>
        AllowOverride None
        Options ExecCgi
        Order allow,deny
        allow from all
    </directory>
    </VirtualHost>
    Le virtualhost vide permet de tomber sur siteprincipal.com, sinon ca fonctionne pas.
    Le second virtualhost normalement dans son repertoire racine ne devrait pas executer les . php. Pourtant quand je fais http://site1.com/test.php la page fonctionne. Les scripts qui se trouve dans le sous repertoire http://site1.com/CGI fonctionnent ce qui est l'effet voulu.

    Ce que je n'arrive pas a comprendre c'est pourquoi je n'arrive pas a empecher l'execution de scripts.

Discussions similaires

  1. Supprimer les Warnings sur certains répertoire
    Par ALX79 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 22/01/2008, 18h49
  2. C# Récupérer les droits sur un répertoire
    Par PORTES dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/10/2006, 19h03
  3. Comment positionner les droits sur un répertoire?
    Par RolandB dans le forum Général Java
    Réponses: 8
    Dernier message: 07/10/2006, 02h23
  4. Réponses: 1
    Dernier message: 20/09/2006, 00h29
  5. changer les droits sur un répertoire
    Par pricrot dans le forum VBScript
    Réponses: 2
    Dernier message: 07/09/2006, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo