2015-11-17 6 views
0

Je bricoler avec des pages Web sur un serveur LAMP exécutant Apache2 et je me demandais s'il était possible de rendre un répertoire accessible uniquement à vos pages Web et non à l'extérieur?LAMP - rendre le répertoire accessible uniquement à certaines pages Web

Exemple de scénario:

Directory pour protéger: dir1 contenant des images (jpg, png)

Ma page Web: mapage.html qui appelle des images de dir1

Mon site web: www.myweb.com qui contient les deux dir1 et mapage.html

Actuellement, les fichiers à l'intérieur du site sont accessibles via www.myweb.com/dir1/somefile.jpg ou en appelant mapage.html

Je voudrais qu'il pour être accessible uniquement en appelant mapage.html

J'ai essayé ce qui suit:

  • .htaccess modifier pour interdire l'accès des types d'images

    <files "*.jpg"> 
        deny from all 
    </files> 
    

(ne fonctionne pas parce que mapage.html ne peut pas accéder non plus)

  • Modifier le fichier apache2 avec conf:

    <Directory /var/www/dir1> 
        AllowOverride None 
        <Limit GET POST OPTIONS> 
        Order deny,allow 
        Deny from all 
        </Limit> 
    </Directory> 
    

    (cela a fait semi-travaillé car il m'a permis d'écrire dans le répertoire mais pas lu, peut-être cela peut être modifié pour permettre aux demandes co ming de pages Web internes de passer par?)

Je suppose que conclure, est-il un moyen d'obtenir Apache2 d'accepter uniquement les demandes d'accès à un répertoire si elle est d'une certaine url de votre choix?

Merci d'avance.

+1

Je crois que c'est ce que vous cherchez. http://stackoverflow.com/a/1245917/330987 –

+0

Je vais regarder dans ce merci. – publicknowledge

Répondre

0

Donc, j'ai décidé que les approches que j'ai prises jusqu'à présent vraiment ne pas couper et trouvé que vous pouvez réellement appeler une fonction php où

<img src='somefile.php?query=xxx' alt='pic'> 

et où dans le somefile.php I avoir cela prend en img le nom du fichier créé à partir de la requête ci-dessus.

echo file_get_contents($imgresource); 

En servant l'image à partir d'un script php et de bloquer ce script php d'être appelé sans informations d'identification appropriées, les sessions, les cookies et le blocage IP, il y a une certaine sécurité fixée.

Donc je suppose que cela ne répond pas vraiment à la question de bloquer uniquement l'accès à certaines URL mais cela fonctionne dans le but de ne pas être accessible en externe puisque j'ai enterré le répertoire ci-dessous?) le répertoire racine Web où il ne peut pas être appelé depuis une URL et uniquement depuis un script interne.

+1

Si je savais que vous utilisiez PHP, j'aurais suggéré cette approche. Cependant, vous n'avez pas étiqueté la question comme php ou avez eu des exemples de php. Content que tu aies trouvé quelque chose à utiliser. –

+0

Désolé. Je n'ai pas spécifié php parce que le problème initial que je l'ai encadré comme, n'était pas spécifique au script. Merci d'avoir confirmé l'approche. – publicknowledge