Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Reécriture - sécurité [ Divers / Débutant(e) ] (matty30)

jeudi 15 juin 2006 à 22:11:15 | Reécriture - sécurité

matty30

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

vendredi 16 juin 2006 à 02:52:13 | Re : Reécriture - sécurité

audayls

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"

vendredi 16 juin 2006 à 10:26:52 | Re : Reécriture - sécurité

matty30

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+


samedi 17 juin 2006 à 03:22:23 | Re : Reécriture - sécurité

audayls

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 '<img src="',$urlimage,'" alt="" />';
}
else header('Location: index.php');
?>
"

samedi 17 juin 2006 à 12:16:59 | Re : Reécriture - sécurité

matty30

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
++


samedi 17 juin 2006 à 12:25:25 | Re : Reécriture - sécurité

audayls

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 : [ Lien ]

samedi 17 juin 2006 à 12:56:04 | Re : Reécriture - sécurité

matty30

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
++



samedi 17 juin 2006 à 19:31:31 | Re : Reécriture - sécurité

audayls

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>
<body>
<dl id="menu">
        <dt onclick="javascript:montre('smenu1');">Jeux</dt>
            <dd id="smenu1">
                <ul>
                    <li><a href="10/main.php">Dossier Jeux</a></li>
                    <li><----------></li>
                    <li><a href="11/main.php">Worms</a></li>
                </ul>
        </dd>
</dl>
</body>
</html>
"

-->> Créer un fichier ".htaccess"
Puis créer un dossier nommée "Jeux" et mets ce code (tu appelleras ce fichier "main.php")
"<?php
function listage($from,$image) {
    // Fonction de Listage :
    //$from : Elle represente le dossier réel (trouvé avec dirname($_SERVER['PHP_SELF']))
    //$image : si cette variable est égale à TRUE la fonction ne liste que les images sinon elle liste que les dossiers
   
    $list = array('.','..'); $e = ''; // On initialise les variables ...
   
    $dossier = opendir($from); // On ouvre le dossier
   
    while ($fichier = readdir($dossier))
        if (!in_array($fichier, $list))
            if ($image === FALSE AND is_dir($from.'\\'.$fichier)) {
                if (empty($nb)) $nb = 11; else $nb++; // La variable "$nb" represente ici le nombre qui est attribué au dossier...
                $e .= '<font color=#009900><a href="'.dirname($from).'/'.$nb.'/main.php">'.$from.'\\'.$fichier.'</a></font><br />'; // 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 .= '<a href="'.dirname(dirname($from)).'/'.$_GET['nb'].'/'.$url.'"><img src="'.dirname(dirname($from)).'/'.$_GET['nb'].'/'.$fichier.'" alt="" /></a><br />'; // 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 " [ Lien ]".

Voilà j'espere que c'était bien çà ...

samedi 17 juin 2006 à 19:32:31 | Re : Reécriture - sécurité

audayls

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]
"

samedi 17 juin 2006 à 20:51:17 | Re : Reécriture - sécurité

matty30

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

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

Ne serait-ce pas pluôt le contraire, genre :
                   <li><a href="Jeux/main.php">Dossier Jeux</a></li>
                    <li><----------></li>
                    <li><a href="Worms/main.php">Worms</a></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.


1 2

Cette discussion est classé dans : sécurité, repertoire, reécriture


Répondre à ce message

Sujets en rapport avec ce message

Sécurité [ par thebigbang ] Bonjout,Je suis webmaster et je voudrais sécurisé, enfin c'est une facon de parler, un peu plus mon site ...il conmporte un dossier "admin" et lorsque securite lors d'un upload [ par erich10 ] j'ai un formulaire pour uploader un fichier dans un repertoire .Pour le faire mon repertoire est en chmod777, comment puis je faire pour interdire l'e image aleatoire ... sans base de donnée [ par sana72 ] Bonjour,voile, je dois recharger des images tous les x tempsmes images sont stocké dans un repertoire qui porte le nom du thême et dans ce repertoire, sous-repertoire fichier ............ [ par TRASH52 ] TRASH52bon je vous met le code!En fait, je voudrais que mon programme a partir d'u droit ecriture dans un repertoire [ par pascalcargouet ] Comment donnee des droit en ecriture/lecture etc .. à un repertoire sous apache/windows(j'ai easy php en local) mkdir et droits [ par elanspeech ] salut, dans ma page php, je fais la commande suivante : mkdir ("rep/", 0777); le repertoire est bien cree mais pas avec les bons droits.... j'obtiens traitement fichiers [ par elanspeech ] Salut,Dans une page, je passe en parametre un chemin de repertoire.J'aimerais pouvoir faire un remplacement de chaine de caracteres dans tous les fich balayer un repertoir [ par mogmog ] salut!je voudrais savoir si il a une commande pour ouvrir un repertoire en chemin absolu!Je cherche a balayer un repertoire, pour recuperer les dates Lister un répertoire (de manière ordonnée) [ par faiseurdesonges ] Bonjour, voila j'aimerais lister un répertoire de manière ordonnée, à savoir tout les fichiers du dossier principale puis le premier sous dossier suiv repertoire [ par Zan ] salut,existe-t-il des solutions php pour copier un repertoire et son contenu ?merciZan


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.