SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 34 visiteurs en ce moment

Accueil du site > Auteurs, authentification et autorisations > Protection documents > Protéger le répertoire IMG/

Protéger le répertoire IMG/

10 décembre 2004 – par Aurélien PIERARD – 37 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

6 votes

Voici un script permettant protéger le contenu du répertoire IMG/

Pourquoi cette contrib ?

Dans le cas d’un intranet, il peut être utile de vouloir restreindre l’accès aux pièces jointes des articles ou des rubriques uniquement aux personnes autorisées à se connecter au site. (Cf : #LOGIN_PUBLIC et #URL_LOGOUT)

Spip stocke l’ensemble des documents (publiés ou non) dans le répertoire IMG/ . N’importe qui peut consulter ces documents (images, fichiers pdf, word...) en allant à l’adresse http://www.votresite.com/IMG/ ou en connaissant l’url d’un document. Cette contrib permet donc de corriger ce problème et de restreindre l’accès à vos données.

I. Ne pas lister le contenu des répertoires

La première chose à faire est d’empêcher Apache de lister le contenu des répertoires ne contenant pas de fichier "index". Pour cela, il faut placer un fichier nommé .htaccess à la racine de votre site. Ce fichier doit contenir les lignes suivantes :

-  La première ligne permet de rediriger l’internaute lorsque la page demandée n’existe pas. Pour cela, vous devez créer un squelette d’erreur (couples de fichier erreur404.php3/erreur404.html)
-  La deuxième ligne empêche Apache de lister le contenu des répertoires ne possédant pas de fichier « index »
-  Ces règles s’appliquent au répertoire racine et à ses sous-répertoires.

II. Protéger le répertoire IMG/

1. - Créer un fichier .htaccess à la racine du répertoire IMG/ contenant les instructions suivantes

-  Pour info : Afin de ne pas trop surcharger le serveur, les fichiers protégés sont uniquement les fichiers : doc, pdf, sxw, ppt, ps, xls, html et txt. Si vous voulez protéger d’autres types de fichiers, vous devez rajouter des extensions (ex : gif, jpg...).

2. - Créer le fichier securedoc.php3 à la racine de votre site.

3. - Exécuter le script SQL suivant qui va compléter les champs mime_type de la table spip_types_documents qui par défaut sont vides.

texte - 3.7 ko
script SQL

III. Comment çà marche ?

-  Le fichier "IMG/.htaccess" redirige les demandes de documents de l’internaute vers le fichier "securedoc.php3"
-  Le script "securedoc.php3" vérifie si l’internaute est connecté. Dans ce cas, le script effectue plusieurs vérifications (Est-ce que le fichier existe ; Est ce que sa taille est supérieure à 0...). Enfin, il récupère le type mime du document, complète les en-têtes http de la page et retourne le document à l’internaute.
-  Dans le cas inverse, une erreur 404 est retournée au navigateur.

IV. L’archive de la contrib

Zip - 2.6 ko
Protéger le répertoire IMG/ (Authentification)
Cette version impose à l’utilisateur d’être connecté.
Zip - 2.5 ko
Protéger le répertoire IMG/ (Referer)
Cette légère variante n’impose pas d’authentification, mais teste la présence d’un referer. Attention les navigateurs ne retournent pas toujours le referer de la page consultée. Ce qui peut poser des problèmes dans certains cas

P.-S.

-  Ce script est très inspiré de celui d’Antoine publié sur la liste de diffusion spip-devel.

Retour en haut de la page

Vos commentaires

  • Le 1er octobre 2011 à 05:48, par Phil En réponse à : Protéger le répertoire IMG/

    Bonjour.
    Même problème que certain, impossible d’exécuter le sript SQL (dernière étape du tuto), du coup je n’ai plus accès aux fichiers déposé sur le site.
    Pourriez-vous détailler l’installation du script ?
    Merci d’avance.
    Phil

    Répondre à ce message

  • Le 17 mars 2011 à 02:43, par seds En réponse à : Protéger le répertoire IMG/

    Bonsoir,
    Il y a un truc qui ne va pas :
    Je suis sur spip2.1.8 sur ovh, et j’ai essayé toutes les manips de la contrib ainsi que celles du forum en prenant soin de remplacer les php3 par php, et ajouter include("ecrire/inc/headers.php") ; sous include("ecrire/inc_version.php") ;

    IMG et sous répertoires sont bien inaccessibles, mais on peut encore accéder aux fichiers directement par l’url.

    ici on parle beaucoup de spip1.9 mais qu’en est-il de spip2 pour ces scripts ?

    • Le 17 mars 2011 à 08:01, par balou En réponse à : Protéger le répertoire IMG/

      Bonjour,
      j’utilise SPIP 2.1.8 et le système de protection de répertoire à base d’un fichier index.php présent dans le répertoire IMG. Cela fonctionne correctement. Ce fichier renvoi vers la page d’accueil du site si quelqu’un essai de lire le contenu du répertoire IMG.

      Contenu du fichier index.php :

      1.      // recursive call of index.php
      2.       $url = '../index.php';
      3.       header( 'Request-URI: '.$url );
      4.       header( 'Content-Location: '.$url );
      5.       header( 'Location: '.$url );
      6.       exit();
      7.       ?>

      Voir en ligne (Site chez O2SWITCH) : Latoniccia Club Plongée/IMG

    • Le 17 mars 2011 à 11:43, par seds En réponse à : Protéger le répertoire IMG/

      Merci, j’avais bien vu ta solution proposée dans le post du 7/4/2010 mais elle ne me donne pas de meilleur résultat, les fichiers restent accessibles depuis leurs urls.
      en attendant j’ai préféré la solution de cette contrib car elle me donne un erreur 403 qd la tienne qui donne un 500.

      J’utilise l’acces restreint pour les visiteurs (site extranet) et cela signifie donc qu’aucun intrus ne doit accéder aux docs joints. j’ai tenté également l’installation d’un .htpassword mais mon installation a échoué et j’ignore pourquoi. j’ai posté un message mais je ne m’attends pas à une réponse en fait car nombreux posts restent sans réponse. de plus quand j’ai lu ça, j’ai préféré ne pas insister..

      je viens de trouver cette solution aussi, je m’apprête à la tester..

    Répondre à ce message

  • Le 7 avril 2010 à 16:48, par balou En réponse à : Protéger le répertoire IMG/

    Bonjour,

    pour protéger le répertoire IMG et d’autres sur mes sites, j’utilise une astuce empruntée à l’équipe PIWIGO ( Site PIWIGO) qui utilise un fichier index.php positionné dans chacun des répertoires à protéger. Lors d’une demande d’accès au répertoire protégé, le fichier index vous renvoi vers la page d’accueil de votre site et les documents utilisés dans vos articles, rubriques, brèves, etc ... restent disponibles pour SPIP.

    Voir en ligne (Site chez FREE) : Latoniccia Club Plongée/IMG

    Code du fichier Index.php :

    1. <?php
    2. // +-----------------------------------------------------------------------+
    3. // | PhpWebGallery - a PHP based picture gallery                           |
    4. // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
    5. // | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
    6. // +-----------------------------------------------------------------------+
    7. // | the Free Software Foundation                                          |
    8. // |                                                                       |
    9. // | This program is distributed in the hope that it will be useful, but   |
    10. // | WITHOUT ANY WARRANTY; without even the implied warranty of            |
    11. // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
    12. // | General Public License for more details.                              |
    13. // |                                                                       |
    14. // | You should have received a copy of the GNU General Public License     |
    15. // | along with this program; if not, write to the Free Software           |
    16. // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
    17. // | USA.                                                                  |
    18. // +-----------------------------------------------------------------------+
    19. // recursive call of index.php
    20. $url = '../index.php';
    21. header( 'Request-URI: '.$url );
    22. header( 'Content-Location: '.$url );
    23. header( 'Location: '.$url );
    24. exit();
    25. ?>
    • Le 30 septembre 2010 à 10:00, par sandgirl En réponse à : Protéger le répertoire IMG/

      merci pour cette astuce, ça marche nickel chrome même pour la dernière version de Spip. Depuis le temps que je cherchais un système simple et efficace.... Sympa de l’avoir partagé

    Répondre à ce message

  • Le 7 avril 2010 à 11:12, par Lili29 En réponse à : Protéger le répertoire IMG/

    Bonjour,

    Idem : comment faire pour que les documents contenus dans /IMG appartenant à des articles « public » continuent à être accessibles ?

    Répondre à ce message

  • Le 19 avril 2009 à 23:42, par mendesrocc En réponse à : Protéger le répertoire IMG/ En panne d’idées

    ok ca fonctionne mais chez moi (même super bien) uniquement mais pas chez free.
    Free bloque Erreur interne 500.
    Question de sécurité je pense.
    J’ai tout essayé (les directives apache comme « action » ...) pour rediger les images vers le module securedoc doc mais cela ne fonctionne pas ou mal chez free.
    J’ai même développé un module pour encoder/décoder les images mais cela ne va pas assez vite le serveur bloque.
    quelqu’un a une idée ?

    Merci d’avance.

    • Le 24 mars 2010 à 21:48, par Flo En réponse à : Protéger le répertoire IMG/

      En général l’erreur interne 500 vient d’une commande non reconnue dans le .htaccess
      J’ai donc nettoyé le .htaccess au maximum et cela fonctionne sur free (SPIP 2.0.8 ) :

      deny from all
      ErrorDocument 403 /securedoc.php

      et le fichier securedoc.php avec les petites modifs données dans ce forum pour les include.

    Répondre à ce message

  • Le 28 septembre 2009 à 14:44, par jovpier En réponse à : Protéger le répertoire IMG/

    même question que françois, comment faire pour que les documents contenus dans /IMG mais faisant référence à des articles qui ne sont pas dans l’intranet continuent à être accessibles ?

    • Le 17 décembre 2009 à 09:17, par quidoz En réponse à : Protéger le répertoire IMG/

      Bonjour

      Avez vous trouvé une solution à ce problème ?

      A+

      MCQ

    Répondre à ce message

  • Le 14 juillet 2009 à 16:05, par Olysh En réponse à : Protéger le répertoire IMG/

    Est-il possible de détailler l’étape 3 svp : « exécuter le script » ?

    Faut-il double cliquer sur le fichier une fois qu’il est installé dans le répertoire du site ?

    Merci

    • Le 6 décembre 2009 à 18:33, par ? En réponse à : Protéger le répertoire IMG/

      Même question... une réponse serait bienvenue !

    • Le 6 décembre 2009 à 20:57, par AirW En réponse à : Protéger le répertoire IMG/

      Aaaaaaaaaaarrrghhhhhhhhhhhhhhhh ! H E L P !

      J’ai suivi la procédure les yeux fermés jusqu’à l’avant dernier point. (oui, je sais, devant un écran, il faut déjà le faire). Et là, je me suis retrouvé bête : que faire de ce script ?

      Mes documents sont maintenant inaccessibles.

      Olysh, as-tu obtenu une réponse ?

      Merci de bien vouloir lancer une bouée de sauvetage !

    Répondre à ce message

  • Le 30 août 2009 à 07:20, par ? En réponse à : Protéger le répertoire IMG/

    Bonjour,
    j’ai tenté d’installer ce script qui me semble intéressant - en local tout fonctionne parfaitement, quand j’ai uploader les fichiers et la base sur mon site en ligne : catastrophe, les images ne s’affichent plus dans les articles. Je suis novice sur SPIP, comment revenir en arrière, j’ai suprimmé les fichiers .htaccess et securedoc mais rien n’y fait, il doit y avoir des tables dans la base qui ont été modifiées... Lesquelles ?
    Help, help I need some help !!!

    • Le 5 septembre 2009 à 21:56, par ? En réponse à : Protéger le répertoire IMG/

      As-tu vidé le cache ??

    • Le 24 septembre 2009 à 09:41, par ? En réponse à : Protéger le répertoire IMG/

      Oui j’ai vidé le cache, j’ai même réinstallé complètement SPIP, mais le problème doit être au niveau d’une table créée dans la base qui restreint l’accès. Comment modifier les scripts htaccess et secure doc pour revenir à l’état d’origine, donner moi un exemple svp (je n’y connaîs rien en php !!!)
      Merci d’avance

    Répondre à ce message

  • Le 9 septembre 2009 à 01:02, par François En réponse à : Protéger des fichiers du répertoire IMG/pdf

    Bonjour,

    J’administre un site sous SPIP 1.9.2h (patché).

    Ce site dispose d’un accès membres avec loggin et MdP.
    Dans l’espace membres, se trouvent des documents .pdf réserver aux personnes s’étant identifiées dans l’espace membres.

    Cependant, je me suis aperçu que ces documents sont accessible même sans être loggé, pour ceux qui connaissent l’adresse.
    Adresse genre www.site.org/IMG/pdf/demo.pdf.

    J’ai donc appliqué la procédure de cette article : http://www.spip-contrib.net/Proteger-le-repertoire-IMG

    Mais du coup tous les documents de /IMG/pdf sont restreints.

    Comment appliquer cette procédure à seulement quelques fichiers ?

    Merci d’avance pour votre aide.

    Répondre à ce message

  • Le 10 février 2009 à 00:03, par pyvarlet En réponse à : Protéger le répertoire IMG/

    Ceci est-il toujours valable sous SPIP 2.0.3 ? Je me contente actuellement de mettre un fichier index.html dans tous les répertoires dont je ne souhaite pas que le contenu puisse être accédé directement par les utilisateurs. Qu’est-ce que je risque ? En quoi la méthode proposée ici est-elle plus sécurisante ?
    En tous cas merci pour cette contrib.
    Pierre

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.

  • Navigation AJAX

    31 janvier – 18 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)