Protéger le répertoire IMG/ - commentaires Protéger le répertoire IMG/ 2013-02-02T11:05:28Z https://files.spip.org/Proteger-le-repertoire-IMG#comment464975 2013-02-02T11:05:28Z <p>Bonjour, désolé de déterrer ce vieux sujet, je n'y connais rien en php. J'essaye tant bien que mal de maintenir un site web avec SPIP.<br class="autobr"> Je suis très intéressé par votre script.<br class="autobr"> J'ai fais un copié collé de votre script dans un fichier que j'ai nommé index.php, j'ai copié le fichier dans le dossier IMG de mon site, y-a-t-il une autre chose à faire, car pour l'instant j'ai toujours accès à la liste des fichiers présent dans le dossier IMG et aucune redirection ne s'effectue.<br class="autobr"> J'utilise spip 2.07 et le site est hébergé chez free.</p> Protéger le répertoire IMG/ 2012-02-14T14:22:30Z https://files.spip.org/Proteger-le-repertoire-IMG#comment454499 2012-02-14T14:22:30Z <p>Voilà une solution que j'applique et qui fonctionne</p> <p>- <strong>1/ créer IMG/.htaccess contenant :</strong><br class="manualbr">SetEnvIf Referer « ^http:\/\/xxx\.mon-domaine\.fr » OK<br class="manualbr">Order Deny,Allow<br class="manualbr">Deny from all<br class="manualbr">Allow from env=OK<br class="manualbr"> <br>- <strong>2/ modifier conf/httpd.conf :</strong><br class="manualbr">DocumentRoot « /usr/local/xxx/htdocs »<br class="manualbr">AccessFileName .htaccess<br class="manualbr">...<br class="autobr"> <br class="manualbr">...<br class="manualbr">AllowOverride All<br class="manualbr"><br class="manualbr"> <br>- <strong>3/ recharger apache</strong></p> Protéger le répertoire IMG/ 2011-10-01T03:48:37Z https://files.spip.org/Proteger-le-repertoire-IMG#comment450311 2011-10-01T03:48:37Z <p>Bonjour.<br class="autobr"> 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.<br class="autobr"> Pourriez-vous détailler l'installation du script<small class="fine d-inline"> </small>?<br class="autobr"> Merci d'avance.<br class="autobr"> Phil</p> Protéger le répertoire IMG/ 2011-03-17T10:43:06Z https://files.spip.org/Proteger-le-repertoire-IMG#comment442744 2011-03-17T10:43:06Z <p>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.<br class="autobr"> 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.</p> <p>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 <a href="http://www.spip-contrib.net/Creer-un-fichier-htpasswd-sous" class="spip_out" rel='nofollow external'>.htpassword</a> 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 href="http://www.spip-contrib.net/Creer-un-fichier-htpasswd-sous#forum423750" class="spip_out" rel='nofollow external'>ça</a>, j'ai préféré ne pas insister..</p> <p>je viens de trouver <a href="http://www.spip-contrib.net/Un-niveau-d-acces-sur-les-objets" class="spip_out" rel='nofollow external'>cette solution</a> aussi, je m'apprête à la tester..</p> Protéger le répertoire IMG/ 2011-03-17T07:01:29Z https://files.spip.org/Proteger-le-repertoire-IMG#comment442719 2011-03-17T07:01:29Z <p>Bonjour,<br class="autobr"> 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.</p> <p><strong>Contenu du fichier index.php :</strong></p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code> // recursive call of index.php $url = '../index.php'; header( 'Request-URI: '.$url ); header( 'Content-Location: '.$url ); header( 'Location: '.$url ); exit(); ?></code></pre></div> <p>Voir en ligne (Site chez O2SWITCH) : <a href="http://www.latoniccia.fr/IMG" class="spip_out" rel='nofollow external'>Latoniccia Club Plongée/IMG</a></p> Protéger le répertoire IMG/ 2011-03-17T01:43:25Z https://files.spip.org/Proteger-le-repertoire-IMG#comment442716 2011-03-17T01:43:25Z <p>Bonsoir,<br class="autobr"> Il y a un truc qui ne va pas :<br class="autobr"> 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(«<small class="fine d-inline"> </small>ecrire/inc/headers.php<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>; sous include(«<small class="fine d-inline"> </small>ecrire/inc_version.php<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>;</p> <p>IMG et sous répertoires sont bien inaccessibles, mais on peut encore accéder aux fichiers directement par l'url.</p> <p>ici on parle beaucoup de spip1.9 mais qu'en est-il de spip2 pour ces scripts<small class="fine d-inline"> </small>?</p> Protéger le répertoire IMG/ 2010-09-30T08:00:05Z https://files.spip.org/Proteger-le-repertoire-IMG#comment435131 2010-09-30T08:00:05Z <p>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é</p> Protéger le répertoire IMG/ 2010-04-07T14:48:25Z https://files.spip.org/Proteger-le-repertoire-IMG#comment428764 2010-04-07T14:48:25Z <p>Bonjour,</p> <p>pour protéger le répertoire IMG et d'autres sur mes sites, j'utilise une astuce empruntée à l'équipe PIWIGO ( <a href="http://fr.piwigo.org/" class="spip_out" rel='nofollow external'>Site PIWIGO</a>) 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.</p> <p>Voir en ligne (Site chez FREE) : <a href="http://latoniccia.free.fr/IMG" class="spip_out" rel='nofollow external'>Latoniccia Club Plongée/IMG</a></p> <p><strong>Code du fichier Index.php :</strong></p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code><?php // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | // | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | the Free Software Foundation | // | | // | This program is distributed in the hope that it will be useful, but | // | WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | // | General Public License for more details. | // | | // | You should have received a copy of the GNU General Public License | // | along with this program; if not, write to the Free Software | // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | // | USA. | // +-----------------------------------------------------------------------+ // recursive call of index.php $url = '../index.php'; header( 'Request-URI: '.$url ); header( 'Content-Location: '.$url ); header( 'Location: '.$url ); exit(); ?></code></pre></div> Protéger le répertoire IMG/ 2010-04-07T09:12:58Z https://files.spip.org/Proteger-le-repertoire-IMG#comment428753 2010-04-07T09:12:58Z <p>Bonjour,</p> <p>Idem : comment faire pour que les documents contenus dans /IMG appartenant à des articles « public » continuent à être accessibles<small class="fine d-inline"> </small>?</p> Protéger le répertoire IMG/ 2010-03-24T20:48:49Z https://files.spip.org/Proteger-le-repertoire-IMG#comment428153 2010-03-24T20:48:49Z <p>En général l'erreur interne 500 vient d'une commande non reconnue dans le .htaccess<br class="autobr"> J'ai donc nettoyé le .htaccess au maximum et cela fonctionne sur free (SPIP 2.0.8 ) :</p> <p>deny from all<br class="autobr"> ErrorDocument 403 /securedoc.php</p> <p>et le fichier securedoc.php avec les petites modifs données dans ce forum pour les include.</p> Protéger le répertoire IMG/ 2009-12-17T08:17:35Z https://files.spip.org/Proteger-le-repertoire-IMG#comment424354 2009-12-17T08:17:35Z <p>Bonjour</p> <p>Avez vous trouvé une solution à ce problème<small class="fine d-inline"> </small>?</p> <p>A+</p> <p>MCQ</p> Protéger le répertoire IMG/ 2009-12-06T19:57:22Z https://files.spip.org/Proteger-le-repertoire-IMG#comment423994 2009-12-06T19:57:22Z <p>Aaaaaaaaaaarrrghhhhhhhhhhhhhhhh<small class="fine d-inline"> </small>! H E L P<small class="fine d-inline"> </small>!</p> <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<small class="fine d-inline"> </small>?</p> <p>Mes documents sont maintenant inaccessibles.</p> <p>Olysh, as-tu obtenu une réponse<small class="fine d-inline"> </small>?</p> <p>Merci de bien vouloir lancer une bouée de sauvetage<small class="fine d-inline"> </small>!</p> Protéger le répertoire IMG/ 2009-12-06T17:33:42Z https://files.spip.org/Proteger-le-repertoire-IMG#comment423993 2009-12-06T17:33:42Z <p>Même question... une réponse serait bienvenue<small class="fine d-inline"> </small>!</p> Protéger le répertoire IMG/ 2009-09-28T12:44:19Z https://files.spip.org/Proteger-le-repertoire-IMG#comment421082 2009-09-28T12:44:19Z <p>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<small class="fine d-inline"> </small>?</p> Protéger le répertoire IMG/ 2009-09-24T07:41:19Z https://files.spip.org/Proteger-le-repertoire-IMG#comment420907 2009-09-24T07:41:19Z <p>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<small class="fine d-inline"> </small>!!!)<br class="autobr"> Merci d'avance</p> Protéger des fichiers du répertoire IMG/pdf 2009-09-08T23:02:41Z https://files.spip.org/Proteger-le-repertoire-IMG#comment420344 2009-09-08T23:02:41Z <p>Bonjour,</p> <p>J'administre un site sous SPIP 1.9.2h (patché).</p> <p>Ce site dispose d'un accès membres avec loggin et MdP.<br class="autobr"> Dans l'espace membres, se trouvent des documents .pdf réserver aux personnes s'étant identifiées dans l'espace membres.</p> <p>Cependant, je me suis aperçu que ces documents sont accessible même sans être loggé, pour ceux qui connaissent l'adresse.<br class="autobr"> Adresse genre <a href="http://www.site.org/IMG/pdf/demo.pdf" class="spip_url spip_out auto" rel="nofollow external">www.site.org/IMG/pdf/demo.pdf</a>.</p> <p>J'ai donc appliqué la procédure de cette article : <a href="http://www.spip-contrib.net/Proteger-le-repertoire-IMG" class="spip_url spip_out auto" rel="nofollow external">http://www.spip-contrib.net/Proteger-le-repertoire-IMG</a></p> <p>Mais du coup tous les documents de /IMG/pdf sont restreints.</p> <p>Comment appliquer cette procédure à seulement quelques fichiers<small class="fine d-inline"> </small>?</p> <p>Merci d'avance pour votre aide.</p> Protéger le répertoire IMG/ 2009-09-05T19:56:13Z https://files.spip.org/Proteger-le-repertoire-IMG#comment420242 2009-09-05T19:56:13Z <p>As-tu vidé le cache<small class="fine d-inline"> </small>??</p> Protéger le répertoire IMG/ 2009-08-30T05:20:48Z https://files.spip.org/Proteger-le-repertoire-IMG#comment419965 2009-08-30T05:20:48Z <p>Bonjour,<br class="autobr"> 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<small class="fine d-inline"> </small>?<br class="autobr"> Help, help I need some help<small class="fine d-inline"> </small>!!!</p> Protéger le répertoire IMG/ 2009-07-14T14:05:51Z https://files.spip.org/Proteger-le-repertoire-IMG#comment418245 2009-07-14T14:05:51Z <p>Est-il possible de détailler l'étape 3 svp : « exécuter le script »<small class="fine d-inline"> </small>?</p> <p>Faut-il double cliquer sur le fichier une fois qu'il est installé dans le répertoire du site<small class="fine d-inline"> </small>?</p> <p>Merci</p> Protéger le répertoire IMG/ En panne d'idées 2009-04-19T21:42:43Z https://files.spip.org/Proteger-le-repertoire-IMG#comment415555 2009-04-19T21:42:43Z <p>ok ca fonctionne mais chez moi (même super bien) uniquement mais pas chez free.<br class="autobr"> Free bloque Erreur interne 500.<br class="autobr"> Question de sécurité je pense.<br class="autobr"> 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.<br class="autobr"> J'ai même développé un module pour encoder/décoder les images mais cela ne va pas assez vite le serveur bloque.<br class="autobr"> quelqu'un a une idée<small class="fine d-inline"> </small>?</p> <p>Merci d'avance.</p> Protéger le répertoire IMG/ 2009-02-09T23:03:33Z https://files.spip.org/Proteger-le-repertoire-IMG#comment413227 2009-02-09T23:03:33Z <p>Ceci est-il toujours valable sous SPIP 2.0.3<small class="fine d-inline"> </small>? 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<small class="fine d-inline"> </small>? En quoi la méthode proposée ici est-elle plus sécurisante<small class="fine d-inline"> </small>?<br class="autobr"> En tous cas merci pour cette contrib.<br class="autobr"> Pierre</p> Protéger le répertoire IMG/ (spip 1.9.2) 2008-11-06T16:10:14Z https://files.spip.org/Proteger-le-repertoire-IMG#comment409848 2008-11-06T16:10:14Z <p>J'ai adapté cette contrib sur un spip 1.9.2<sup class="typo_exposants">d</sup>, mais je voulais en plus que ce qui est écrit plus loin dans le forum, protéger les images et les vignettes générées automatiquement.</p> <p>Pour protéger les images, il faut ajouter au .htaccess :<br class="manualbr"><code class="spip_code spip_code_inline" dir="ltr">gif|GIF|png|PNG|jpg|JPG|jpeg|JPEG</code> dans les 2 ocuurences <code class="spip_code spip_code_inline" dir="ltr">(doc|pdf|sxw|ppt|ps|txt|xls|html|DOC ...</code> de ce fichier.</p> <p>Ensuite, pour plus de cohérence avec spip 1.9, je sugère de renomer erreur404.php3 et securedoc.php3, erreur404.php et securedoc.php, et d'adapter leurs occurences dans le .htaccess et securedoc.php</p> <p>Ensuite, comme dit plus bas, il faut dans securedoc.php remplacer :<br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr">include("ecrire/inc_version.php3");</code><br class="autobr"> par</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>include("ecrire/inc_version.php"); include("ecrire/inc/headers.php");</code></pre></div> <p>Maintenant, il faut penser à protéger les vignettes qui avec spip 1.9 se trouvent désormais dans un cache dans le répertoire /local/. Pour cela, il faut :<br class="manualbr">1) placer le .htaccess dans le répertoire /IMG/ ET /local/<br class="manualbr">2) dans securedoc.php, remplacer</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code> if (!ereg("/IMG/",$uri) || !ereg("..",$uri)){ not_found(); } $fichier = preg_replace(",^.*/IMG/,", "IMG/", $uri); if (!@file_exists($fichier) || !@is_file($fichier)){ not_found(); }</code></pre></div> <p>par</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code> if ((!ereg("/IMG/",$uri) && !ereg("/local/",$uri)) || !ereg("..",$uri)){ not_found(); } if (ereg("/IMG/",$uri)) {$fichier = preg_replace(",^.*/IMG/,", "IMG/", $uri);} if (ereg("/local/",$uri)) {$fichier = preg_replace(",^.*/local/,", "local/", $uri);} if (!@file_exists($fichier) || !@is_file($fichier)){ not_found(); }</code></pre></div> <p>Chez moi, ça marche ...<br class="autobr"> bien à vous.</p> > Protéger le répertoire IMG/ 2008-07-09T14:44:57Z https://files.spip.org/Proteger-le-repertoire-IMG#comment407384 2008-07-09T14:44:57Z <p>réponse à moi-même : <br class="autobr"> il semble qu'après test que le problème vienne du .htaccess du dossier IMG/.<br class="autobr"> J'ai fait intervenir mon administrateur serveur pour qu'il me file un coup de main mais pour le moment pas de réponse...mais ça fait 24h et je n'ai pas de retour il doit sécher aussi sur le problème...</p> > Protéger le répertoire IMG/ 2008-07-08T18:35:01Z https://files.spip.org/Proteger-le-repertoire-IMG#comment407368 2008-07-08T18:35:01Z <p>suite à un changement de serveur la protection de mes docs est remise en cause alors que était Ok (impossiblité d'ouvrir les docs si non connecté).<br class="autobr"> C'est dur de se remettre dans le code, je fais donc appel à des personnes qui comme moi ont subi ce type de désagréments pour avoir des pistes sur les éventuels changement à opérer.</p> Protéger le répertoire IMG/ 2008-05-11T00:20:02Z https://files.spip.org/Proteger-le-repertoire-IMG#comment405853 2008-05-11T00:20:02Z <p>Le script à l'air de bien fonctionner, mais quelqu'un pourrait me dire comment faire pour la 1.9.2<sup class="typo_exposants">d</sup> car l'article est assez vieux (2004)...</p> <p>Merci beaucoup<small class="fine d-inline"> </small>!</p> > Protéger le répertoire IMG/ 2008-02-28T13:42:11Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403548 2008-02-28T13:42:11Z <p>Quant à moi, je ne préoccupe pas de savoir si le visiteur est loggué ou non à ce stade là.</p> <p>C'est dans le squelette de la page que je vérifie si le visiteur l'est et s'il fait parti des auteurs de la page...</p> <p>Donc, c'est + simple pour moi...</p> <p>Quant à ma page erreur404, il faut d'abord que je me sorte les doigts du c## pour en faire une + claire...</p> <p>@ +</p> > Protéger le répertoire IMG/ 2008-02-28T11:22:14Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403534 2008-02-28T11:22:14Z <p>Pour info, sur le document securedoc.ph je pense faire des petits réajustement en fonction du plug in accès restreint, car à l'heure actuel le prog vérifie juste qu'une session est ouverte mais pas par qui ce qui peut poser problème suivant le profil du connecté</p> > Protéger le répertoire IMG/ 2008-02-27T19:20:38Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403501 2008-02-27T19:20:38Z <p>Ok ça à l'air de fonctionner, j'ai repris la première version du code et en mixant en rajoutant quelques ajustement avec le tien et j'obtiens ce que je souhaitais<small class="fine d-inline"> </small>!<br class="autobr"> Reste plus qu'à créer les pages d'erreur<small class="fine d-inline"> </small>!</p> <p>merci pour ton aide<small class="fine d-inline"> </small>!</p> > Protéger le répertoire IMG/ 2008-02-27T17:51:46Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403497 2008-02-27T17:51:46Z <p>Dans</p> <blockquote class="spip"> <p>if (ereg(lire_meta(«<small class="fine d-inline"> </small>adresse_site<small class="fine d-inline"> </small>»),$referer))</p> </blockquote> <p>dis moi si je me trompe mais le « adresse_site » correspond à par exempel http://127.0.0.1/intranet?</p> > Protéger le répertoire IMG/ 2008-02-27T17:01:45Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403492 2008-02-27T17:01:45Z <p>Voici le contenu de mon fichier securedoc.php3 :</p> <blockquote class="spip"><pre><code style="color:#000000;"><span style="color:#0000BB;"><?php </span><span style="color:#007700;">include(</span><span style="color:#DD0000;">"ecrire/inc_version.php"</span><span style="color:#007700;">); include(</span><span style="color:#DD0000;">"ecrire/inc/headers.php"</span><span style="color:#007700;">); function </span><span style="color:#0000BB;">not_found</span><span style="color:#007700;">() { </span><span style="color:#0000BB;">http_status</span><span style="color:#007700;">(</span><span style="color:#0000BB;">404</span><span style="color:#007700;">); exit; } </span><span style="color:#0000BB;">$uri </span><span style="color:#007700;">= </span><span style="color:#0000BB;">$REQUEST_URI</span><span style="color:#007700;">; </span><span style="color:#0000BB;">$referer</span><span style="color:#007700;">=</span><span style="color:#0000BB;">$HTTP_REFERER</span><span style="color:#007700;">; if (</span><span style="color:#0000BB;">ereg</span><span style="color:#007700;">(</span><span style="color:#0000BB;">lire_meta</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"adresse_site"</span><span style="color:#007700;">),</span><span style="color:#0000BB;">$referer</span><span style="color:#007700;">)){ if (!</span><span style="color:#0000BB;">ereg</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"/IMG/"</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$uri</span><span style="color:#007700;">) || !</span><span style="color:#0000BB;">ereg</span><span style="color:#007700;">(</span><span style="color:#DD0000;">".."</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$uri</span><span style="color:#007700;">)){ </span><span style="color:#0000BB;">not_found</span><span style="color:#007700;">(); } </span><span style="color:#0000BB;">$fichier </span><span style="color:#007700;">= </span><span style="color:#0000BB;">preg_replace</span><span style="color:#007700;">(</span><span style="color:#DD0000;">",^.*/IMG/,"</span><span style="color:#007700;">, </span><span style="color:#DD0000;">"IMG/"</span><span style="color:#007700;">, </span><span style="color:#0000BB;">$uri</span><span style="color:#007700;">); if (!@</span><span style="color:#0000BB;">file_exists</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">) || !@</span><span style="color:#0000BB;">is_file</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">)){ </span><span style="color:#0000BB;">not_found</span><span style="color:#007700;">(); } </span><span style="color:#0000BB;">$size </span><span style="color:#007700;">= @</span><span style="color:#0000BB;">filesize</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">); if (!</span><span style="color:#0000BB;">$size</span><span style="color:#007700;">){ </span><span style="color:#0000BB;">not_found</span><span style="color:#007700;">(); } </span><span style="color:#0000BB;">$if_modified_since </span><span style="color:#007700;">= </span><span style="color:#0000BB;">ereg_replace</span><span style="color:#007700;">(</span><span style="color:#DD0000;">';.*$'</span><span style="color:#007700;">, </span><span style="color:#DD0000;">''</span><span style="color:#007700;">, </span><span style="color:#0000BB;">$HTTP_IF_MODIFIED_SINCE</span><span style="color:#007700;">); </span><span style="color:#0000BB;">$gmoddate </span><span style="color:#007700;">= </span><span style="color:#0000BB;">gmdate</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"D, d M Y H:i:s"</span><span style="color:#007700;">, @</span><span style="color:#0000BB;">filemtime</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">)).</span><span style="color:#DD0000;">" GMT"</span><span style="color:#007700;">; if (</span><span style="color:#0000BB;">$if_modified_since </span><span style="color:#007700;">== </span><span style="color:#0000BB;">$gmoddate</span><span style="color:#007700;">) { </span><span style="color:#0000BB;">http_status</span><span style="color:#007700;">(</span><span style="color:#0000BB;">304</span><span style="color:#007700;">); exit; } </span><span style="color:#0000BB;">http_status</span><span style="color:#007700;">(</span><span style="color:#0000BB;">200</span><span style="color:#007700;">); </span><span style="color:#0000BB;">$nom</span><span style="color:#007700;">=</span><span style="color:#0000BB;">ereg_replace</span><span style="color:#007700;">(</span><span style="color:#DD0000;">".*/"</span><span style="color:#007700;">,</span><span style="color:#DD0000;">""</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">); </span><span style="color:#0000BB;">$extension</span><span style="color:#007700;">=</span><span style="color:#0000BB;">ereg_replace</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"^(.*)\.(.*)$"</span><span style="color:#007700;">, </span><span style="color:#DD0000;">"\\2"</span><span style="color:#007700;">, </span><span style="color:#0000BB;">$nom</span><span style="color:#007700;">); </span><span style="color:#0000BB;">$req</span><span style="color:#007700;">= </span><span style="color:#DD0000;">"SELECT mime_type FROM spip_types_documents WHERE extension='"</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$extension</span><span style="color:#007700;">.</span><span style="color:#DD0000;">"'"</span><span style="color:#007700;">; </span><span style="color:#0000BB;">$res </span><span style="color:#007700;">= </span><span style="color:#0000BB;">spip_query</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$req</span><span style="color:#007700;">); if (</span><span style="color:#0000BB;">spip_num_rows</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$res</span><span style="color:#007700;">)></span><span style="color:#0000BB;">0</span><span style="color:#007700;">){ </span><span style="color:#0000BB;">$row </span><span style="color:#007700;">= </span><span style="color:#0000BB;">spip_fetch_array</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$res</span><span style="color:#007700;">); </span><span style="color:#0000BB;">$mimeType </span><span style="color:#007700;">= </span><span style="color:#0000BB;">$row</span><span style="color:#007700;">[</span><span style="color:#DD0000;">'mime_type'</span><span style="color:#007700;">]; </span><span style="color:#0000BB;">Header</span><span style="color:#007700;">(</span><span style="color:#DD0000;">'Content-Type: '</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$mimeType</span><span style="color:#007700;">); } </span><span style="color:#0000BB;">Header</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"Content-Length: "</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$size</span><span style="color:#007700;">); </span><span style="color:#0000BB;">Header</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"Last-Modified: "</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$gmoddate</span><span style="color:#007700;">); </span><span style="color:#0000BB;">Header</span><span style="color:#007700;">(</span><span style="color:#DD0000;">'Content-Disposition: attachment; filename="'</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$nom</span><span style="color:#007700;">.</span><span style="color:#DD0000;">'"'</span><span style="color:#007700;">); </span><span style="color:#0000BB;">readfile</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fichier</span><span style="color:#007700;">); } else { </span><span style="color:#0000BB;">not_found</span><span style="color:#007700;">(); } </span><span style="color:#0000BB;">?></span></code></pre> </blockquote> <p>et celui du fichier .htaccess situé dans le répertoire IMG :</p> <blockquote class="spip"> <p> ErrorDocument 404 http://127.0.0.1/intranet/erreur404.php3</p> <p><span class="ressource"><IfModule></span> <br class="autobr"> RewriteEngine On<br class="autobr"> RewriteRule « \.(doc|pdf|sxw|ppt|ps|txt)$ » ../securedoc.php3<br class="autobr"> </p> <p><br class="autobr"> <span class="ressource"><IfModule></span> <br class="autobr"> <br class="autobr"> Deny from all<br class="autobr"> ErrorDocument 403 ../securedoc.php3<br class="autobr"> <br class="autobr"> <br class="autobr"> </p> </blockquote> <p>J'ai eu la flemme de créer une page d'erreur à la place de « http://127.0.0.1/intranet/erreur404.php3 ».</p> <p>Et puis c'est tout...</p> <p>Comme tu le vois : c'est le minimum syndical et cela marche.</p> <p>Par contre, je n'ai pas modifié le fichier .htaccess situé dans le répertoire principal du site avec les options</p> <blockquote class="spip"> <p> ErrorDocument 404 erreur404.php3<br class="autobr"> options -indexes</p> </blockquote> <p>comme indiqué au début...</p> <p>Mais je ne sais plus pourquoi je ne l'ai pas fait, ça remonte à 6 mois...</p> <p>En tout cas, ça marche comme je le voulais.</p> > Protéger le répertoire IMG/ 2008-02-27T16:43:09Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403491 2008-02-27T16:43:09Z <p>Oui je l'ai rajouté.</p> <p>L'accès à mes docs est verrouillé aussi bien en ayant ouvert une session qu'en copiant collant le lien vers le dans le champ adresse de firefox.</p> <p>tu as seulement rajouter cette ligne de code sans autres modifs<small class="fine d-inline"> </small>?</p> > Protéger le répertoire IMG/ 2008-02-27T11:02:28Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403468 2008-02-27T11:02:28Z <p>Bonjour,</p> <p>Pour ma part, j'ai uniquement interdit l'accès direct aux fichiers du répertoire IMG (et à ses sous-rep) et je gère un accès restreint sans plugin en autorisant uniquement l'accès au(x) auteur(s) des articles dont je veux limiter l'accès.</p> <p>As-tu essayé de rajouter la ligne :</p> <blockquote class="spip"> <p>include(«<small class="fine d-inline"> </small>ecrire/inc/headers.php<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>;</p> </blockquote> <p>au début de securedoc.php<small class="fine d-inline"> </small>?</p> <p>Salutations</p> > Protéger le répertoire IMG/ 2008-02-27T09:30:39Z https://files.spip.org/Proteger-le-repertoire-IMG#comment403461 2008-02-27T09:30:39Z <p>Bonjour,</p> <p>j'esaie d'utiliser cette astuce pour protéger l'accès au fichier dans IMG s'il n'y a pas de session ouverte.</p> <p>J'utilise le plug-in accès restreint pour gérer mes accès utilisateurs.</p> <p>j'ai modifié la ligne include(«<small class="fine d-inline"> </small>ecrire/inc_session.php3<small class="fine d-inline"> </small>») par include(«<small class="fine d-inline"> </small>ecrire/inc/session.php<small class="fine d-inline"> </small>») car je travaille sur la version 1.9.2.</p> <p>J'ai un message d'erreur 403 forbidden lorsque j'essaie d'accède raux documents soit par accès direct soit par le lien proposé par l'article sur SPIP.</p> <p>Y'a t'il d'autre choses à modifier<small class="fine d-inline"> </small>?</p> > Protéger le répertoire IMG/ 2007-11-01T11:41:02Z https://files.spip.org/Proteger-le-repertoire-IMG#comment399723 2007-11-01T11:41:02Z <p>...tant que tu n'oublies pas de le placer dans TOUS les sous-dossiers<small class="fine d-inline"> </small>! Vive l'automatisme<small class="fine d-inline"> </small>!</p> > Protéger le répertoire IMG/ 2007-09-07T14:54:25Z https://files.spip.org/Proteger-le-repertoire-IMG#comment397727 2007-09-07T14:54:25Z <p>Quant à moi, j'ai fait le contraire :<br class="autobr"> J'ai ajouté</p> <blockquote class="spip"> <p>include(«<small class="fine d-inline"> </small>ecrire/inc/headers.php<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>;</p> </blockquote> <p>au début du fichier securedoc.php3.</p> <p>Salutations<small class="fine d-inline"> </small>;-)</p> Protéger le répertoire IMG/ 2006-11-10T16:09:46Z https://files.spip.org/Proteger-le-repertoire-IMG#comment388611 2006-11-10T16:09:46Z <p>Excellente Contrib<small class="fine d-inline"> </small>!! Merci Aurélien.</p> <p>Juste une précision sur le fichier .htaccess quand l'Apache tourne sur un OS Windows :<br class="autobr"> La première ligne doit juste être :<br class="autobr"> ErrorDocument 404 /erreur404.php3</p> <p>sans les ../</p> <p>Sinon le fichier .htaccess renvoit sur une page vide indiquant ../erreur404.php3</p> > Protéger le répertoire IMG/ 2004-12-31T12:54:56Z https://files.spip.org/Proteger-le-repertoire-IMG#comment297212 2004-12-31T12:54:56Z <p>Bonjour,</p> <p>merci pour cette contrib.<br class="autobr"> Je viens de tester la solution.<br class="autobr"> En l'utilisant telle quelle j'obtenais un message d'erreur « undefined » sur la fonction « http_status() ».<br class="autobr"> Je l'ai remplacée par un « header() », dans securedoc.php3, et ça marche<small class="fine d-inline"> </small>!</p> <p>Le seul inconvenient pour mon site est que je voudrais pouvoir garder des documents joints en accès libre, sans identification du lecteur.<br class="autobr"> Or toutes les images et douments joints sont envoyés par SPIP dans le répertoire IMG.</p> <p>Est ce qu'on peut forcer SPIP à changer de répertoire, pour certaines rubriques par exemple<small class="fine d-inline"> </small>?</p> > Protéger le répertoire IMG/ 2004-12-30T22:37:45Z https://files.spip.org/Proteger-le-repertoire-IMG#comment295848 2004-12-30T22:37:45Z <p>mdr :-)<br class="manualbr">je pensais être le seul :-)</p> > Protéger le répertoire IMG/ 2004-12-30T22:33:47Z https://files.spip.org/Proteger-le-repertoire-IMG#comment295839 2004-12-30T22:33:47Z <p>Bravo pour ce script que je n'ai pas essayé<small class="fine d-inline"> </small>!!! Je place simplement un fichier index.html qui ne contient rien à la racine du dossier IMG et de ces sous-dossiers. Je suis conscient que la protection est « jeune », mais elle fait son effet...</p>