J'essaie d'empêcher les utilisateurs d'accéder au dossier site/includes
en manipulant l'URL.
Je ne sais pas si je dois tout refuser et faire manuellement des exceptions individuelles pour permettre, si je peux simplement refuser ce dossier, ou s'il existe une fonction de réécriture qui peut être utilisée.
Exemple spécifique: je ne veux pas voir les fichiers de répertoire en tapant localhost/site/includes
dans l'URL.
Créez le fichier site/includes/.htaccess
et ajoutez cette ligne:
Deny from all
Dans un fichier .htaccess
, vous devez utiliser
Deny from all
Mettez ceci dans site/includes/.htaccess
pour le rendre spécifique au répertoire includes
Si vous souhaitez uniquement interdire la liste des fichiers de répertoire, vous pouvez utiliser
Options -Indexes
Vous pouvez également refuser l'accès à un dossier à l'aide de RedirectMatch
Ajouter la ligne suivante à htaccess
RedirectMatch 403 ^/folder/?$
Cela renverra une erreur 403 forbidden
pour le dossier, par exemple: http://example.com/folder/
, mais bloquera l'accès aux fichiers et dossiers de ce dossier. Si vous souhaitez bloquer tout le contenu du dossier, modifiez simplement le motif regex en ^/folder/.*$
.
Une autre option est mod-rewrite
Si url-rewrting-module
est activé, vous pouvez utiliser quelque chose comme ceci dans root/.htaccss
:
RewriteEngine on
RewriteRule ^folder/?$ - [F,L]
Ceci mappera en interne une demande pour la page d'erreur folder
à forbidden
.
Nous allons définir le répertoire pour qu'il soit très sécurisé, en refusant l'accès à tous les types de fichiers. Vous trouverez ci-dessous le code que vous souhaitez insérer dans le fichier .htaccess.
Order Allow,Deny
Deny from all
Depuis que nous avons défini la sécurité, nous souhaitons maintenant autoriser l'accès à nos types de fichiers souhaités. Pour ce faire, ajoutez le code ci-dessous au fichier .htaccess sous le code de sécurité que vous venez d'insérer.
<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
votre fichier final .htaccess
ressemblera
Order Allow,Deny
Deny from all
<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
Source from Autoriser l'accès à des types de fichiers spécifiques dans un répertoire protégé
Vous pouvez créer un fichier .htaccess pour le dossier, qui aurait dû refuser l’accès avec
Deny from all
ou vous pouvez rediriger vers une page 404 personnalisée
Redirect /includes/ 404.html
Vous pouvez également mettre ce IndexIgnore *
à votre fichier .htaccess racine pour désactiver la liste des fichiers de tous les répertoires de votre site Web, y compris le sous-répertoire.
Il suffit de mettre .htaccess dans le dossier que vous souhaitez restreindre
## no access to this folder
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Apache 2.2
<IfModule !mod_authz_core.c>
Order Allow,Deny
Deny from all
</IfModule>
Source: MantisBT sources.
Création de index.php, index.html, index.htm n’est pas sécurisé. Parce que, n'importe qui peut avoir accès à vos fichiers dans le répertoire spécifié en devinant le nom du fichier. Exemple: http://votresite.com/includes/fichier.dat Ainsi, la méthode recommandée consiste à créer un fichier .htaccess pour refuser tous les visiteurs;). S'amuser !!
Vous pouvez le faire dynamiquement de cette façon:
mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);