[RESOLU] sécurisation dossier script PHP

Eléphanteau du PHP | 14 Messages

19 avr. 2016, 17:05

Bonjour
Je cherche à sécuriser un dossier à la racine de mon site, qui contient des script PHP et un fichier modifiable type base de donnée format csv :
1- pour les droits d'accès, le dossier est en 705, les scripts en 604, est ce suffisant?

2- j'aimerais protéger le dossier par un fichier htacces, comment après, appeler les scripts si le dossier est protégé par un mot de passe?
de ce style : http://admin:[email protected]/dossier/script.php
mais cela nécessite de faire un lien avec le mot de passe en clair

3- l'un de mes scripts lit les fichiers présent dans un dossier, protégé par htaccess, sous cette forme :
$dh = @opendir($dir) or die( "Aucun fichier de commande" );   
        $lg = $_POST[admin];
        $pw = $_POST[xxxxxx];
        while (($file = readdir($dh)) !== false) 
                {
ce qui signifie que le mot de passe est en clair dans le script, est il possible de lire les fichiers sans indiquer le mot de passe?

merci pour votre aide, sachant que je viens d'être piraté, ce qui me fait me poser qqs questions !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 avr. 2016, 17:29

Bonjour,

le fichier .htaccess te permet de restreindre l'accès au fichier demandés via le serveur web (via un url / requête http...). Si pour lire ces fichiers avec php tu utilises le système de fichier (chemins sur le disque), alors le fichier .htaccess est inopérant. Donc pas de problème de ce côté là :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

19 avr. 2016, 18:14

en d'autre terme si dans un navigateur je tape www.monsite/dossier rien ne s'affichera, mais je pourrais toujours avoir des liens vers les script PHP?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 avr. 2016, 12:29

C'est ça :)

Tu peux du coup même faire un "deny all" dans ton htaccess plutôt que de demander un mot de passe. Le serveur web rejettera toute tentative d'accès provenant de "l'extérieur". En revanche tes scripts php qui sont déjà sur le serveur pourront quant à eux bien accéder à ce répertoire puisqu'ils passeront par le système de fichier et non par le serveur web :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

20 avr. 2016, 17:13

ok merci

ViPHP
ViPHP | 4039 Messages

21 avr. 2016, 10:31

Remarque apache >= 2.4: le contrôle d'accès à légèrement changée (en bien), le "deny all" devient "Require all denied"
https://httpd.apache.org/docs/2.4/howto/access.html
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.