Reécriture - sécurité [Résolu]

Signaler
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008
-
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008
-
Bonjour tout le monde,

Je cherche à sécuriser mon site web afin que personne ne puisse accéder directement aux répertoires internes.
En effet, dans la barre d'adresses, les paramètres passés en arguments sont du type : repertoire/sous repertoire/photo n° ...
comment puis-je m'y prendre 
J'ai commencé à m'interesser à la ré écriture d'url via htaccess mais j'ai l'impression que ca ne résoudra pas mon problème vu que j'aimerais que ce soit "repertoire/sous repertoire" qui ne soient pas visibles.

merci pour votre aide.
bonne soirée

12 réponses

Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

C'est bon, je pense avoir trouvé une solution intermédiaire à mon problème de variables visibles : les passer par l'intermédiaire des méthodes "post", comme pour les formulaires et là, aucune indication dans l'url !!

merci en tout cas de t'être interéssé(e) à mon problème.
bon dimanche.
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Salut,

-> Si j'ai bien compris tu as une url un peu comme çà : "repertoire/sous repertoire/photo.jpg"
-> Tu pourrais utiliser l'URL Rewriting pour que cela donne "12/photo.jpg"
(le 1 correspond aux répertoires et le 2 aux sous répertoires)

Par exemple :
Tu choisis que le répertoire "janvier" devienne 1 et que le sous-répertoire "vacances" devienne 5, alors tu met ce code dans un fichier ".htaccess" :
"Options +FollowSymlinks
RewriteEngine On
RewriteRule 15/photo.jpg janvier/vacances/photo.jpg [L]"
et l'url "15/photo.jpg" donnera pas une erreur 404 mais redirigera sans que le visiteur le sache vers "janvier/vacances/photo.jpg"
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

salut,

Oui, merci pour ta réponse, c'est bien ça.
Seulement, la photo s'affiche dans une nouvelle page quand on clique sur sa miniature, et j'aimerais donc modifier l'URL de cette nouvelle page.
Je me demandais  si plutôt je dois écrire le .htaccess de cette manière, car à ce jour, ca ne fonctionne toujours pas :

RewriteRule ^15/([0-9]+).jpg$ fichier.php?img=janvier/vacances/$1.jpg [L]




merci a+
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

ReSalut,
Fais un ".htaccess" comme ceci :
"Options +FollowSymlinks
RewriteEngine On
RewriteRule P15/photo.jpg fichier.php?img= 15/photo.jpg [L]
RewriteRule 15/photo.jpg janvier/vacances/photo.jpg [L]"

( le " P " devand le "15" c'est pour "Preview" mdr )

Et mets cela dans ton "fichier.php" qui va afficher les images en taille réelle :
"<?php
if (isset($_GET['img'])) {
    $urlimage = dirname($_SERVER['PHP_SELF']);
    $urlimage .= '/'.$_GET['img'];
    echo '';
}
else header('Location: index.php');
?>"
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

Salut,

Ca ne fonctionne toujours pas ...
Mais maintenant que j'ai bien compris le fonctionnement des fichiers htaccess  , 
mais je compte perséverer avec cette histoire quand même !!
Autre petite question : je vois que tu ne met pas les symboles ^ et $ de début et fin de chaine dans ton htaccess; sont-ils facultatifs ?

merci
++
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

ReSalut,
Qu'es qui ne fonctionne pas ?
J'ai testé chez moi en local est tout fonctionne pourtant ...

Pour les "^" et autres symboles, il sont expliqués sur cette page : http://www.webrankinfo.com/analyses/autres/mettre-en-place-url-rewriting.php
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

Hello !

En fait, petit retour en arrière de ma part car là j'ai voulu commencer par la fin plutot que par le début !
Voilà, plutôt de vouloir cacher toute l'url et étant donné que je n'y arrivais pas, je me suis rabatue à vouloir simplement caché le répertoire; je t'explique :

- un menu présent à  gauche sur mon site (bon ok, on s'en fiche qu'il soit à gauche ou à droite )  permet de sélectionner l'album photo en question.

- donc quand on clique sur un de ses items, on arrive sur l'album photo sélectionné  (ex : janvier), qui contient des sous galleries : (ex : vacances ) et à ce niveau là, on a un url du type :
http://mon-pc/rep-du-script/janvier/main.php

- ensuite, quand on clique une sous gallerie (ex : vacances), la page s'actualise et présente les photos en miniatures; l'url est du type :
http://mon-pc/rep-du-script/janvier/main.php?dir=/vacances
 
et donc déjà à ce niveau, j'aimerais pouvoir "cacher" le répertoire vacances ou le renommer comme tu l'avais suggéré en le nommant par un chiffre ou autre.

Et donc, mon htaccess présent dans le répertoire janvier (d'ailleurs j'ai un doute si je dois le mettre dans janvier ou vacances) a cette forme :

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^autrenom$ main.php?dir=/vacances [L]

et déjà à ce niveau, l'url ne change pas ...
voilà, j'espere que je ne t'ai pas trop embrouillé avec mon blabla ...
merci à toi
++
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

J'ai peut-être ce qui te faut !



-->> Créer un fichier "index.php" avec ce code :
"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>URL Rewriting</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
    for (var i = 1; i<=10; i++) {
        if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
    }
if (d) {d.style.display='block';}
}
//-->
</script>
<style type="text/css">
<!--
/* CSS issu des tutoriels http://css.alsacreations.com */
body {
margin: 0;
padding: 0;
background: white;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
}
dl#menu {
width: 15em;
}
dl#menu dt {
cursor: pointer;
margin: 2px 0;;
height: 20px;
line-height: 20px;
text-align: center;
font-weight: bold;
border: 1px solid gray;
background: #ccc;
}
dl#menu dd {
border: 1px solid gray;
}
dl#menu li {
text-align: center;
background: #fff;
}
dl#menu li a, dl#menu dt a {
color: #000;
text-decoration: none;
display: block;
border: 0 none;
height: 100%;
}
dl#menu li a:hover, dl#menu dt a:hover {
background: #eee;
}
-->
</style>
</head>

        * Jeux
            :
               
                    <li>['.dirname($from).'/'.$nb.'/main.php '.$from.'\\'.$fichier.']
'; // Ici on sort le lien vers la galerie (le dossier trouvé)
            }
            elseif ($image === TRUE) {
                if (!ereg('Thumbs.db',$fichier) AND !ereg('grand',$fichier)) { // On enleve le fichier "Thumbs.db" si il existe et on affiche pas les "grandes" images
                    $url = str_replace('small','grand',$fichier); // On créer une variable "$url" qui representera l'image "grande"
                    $e .= '['.dirname(dirname($from)).'/'.$_GET['nb'].'/'.$url.' ]
'; // On affiche la petite image qui sera en même temps le lien vers la grande image
                }
            }
    return $e;
}
// Si la variable "$_GET['dir']" est vide  on affiche les dossiers
if (empty($_GET['dir']))
    echo listage('../..'.dirname($_SERVER['PHP_SELF']),FALSE);

// Sinon on affiche les images dans le dossier   
else
    echo listage('../..'.dirname($_SERVER['PHP_SELF']).'/'.$_GET['dir'],TRUE);
?>"

Pour finir tu dois créer un dossier nommée "Worms" et y mettre les images que tu trouvera ici "http://www.audayls.123.fr/Worms/".

Voilà j'espere que c'était bien çà ...
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Désolé pour le flood le fichier ".htaccess" n'est pas passé ...
"Options +FollowSymlinks
RewriteEngine On
RewriteRule ^10/main.php Jeux/main.php [L]
RewriteRule ^11/main.php Jeux/main.php?dir=Worms&nb=11 [L]
RewriteRule ^11/small1.jpg Jeux/Worms/small1.jpg [L]
RewriteRule ^11/small2.jpg Jeux/Worms/small2.jpg [L]
RewriteRule ^11/grand1.jpg Jeux/Worms/grand1.jpg [L]
RewriteRule ^11/grand2.jpg Jeux/Worms/grand2.jpg [L]"
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

Yes ! c'est bien ça !
Seulement ca marche chez toi

J'ai étudié ton code, à la fin de index.php, tu marques : 
                     <li>[10/main.php Dossier Jeux]</li>
                    <li><----------></li>
                    <li>[11/main.php Worms]</li>

Ne serait-ce pas pluôt le contraire, genre :
                   <li>[Jeux/main.php Dossier Jeux]</li>
                    <li><----------></li>
                    <li>[Worms/main.php Worms]</li>

car après dans ton htaccess, tu fait la correspondance suivante :
                  RewriteRule ^10/main.php$ Jeux/main.php  [L]

Enfin, j'ai fait le changement mais ca ne fonctionne pas pour autant.
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Ben je cachais l'adresse du fichier "main.php" en même temps (comme çà on ne sais pas le dossier ...) Par contre est tu sûr(e) d'avoir activé l'URL Rewriting ?
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

hello,

oui, oui je suis allée re-vérifier dans les fichiers de conf d'Apache, URL rewriting est bien activé.
bizarre ...