apache - Denegar el acceso a una carpeta específica en.htaccess
(9)
Intento negar a los usuarios el acceso a la carpeta "sitio / incluye" manipulando la URL. No sé si tengo que negar todo y hacer excepciones individuales para permitir, si puedo negar esta única carpeta, o si hay una función de reescritura que se puede utilizar.
Ejemplo específico: no quiero ver los archivos del directorio escribiendo "localhost / site / includes" en la URL.
Además de los métodos seguros sugeridos, que yo también podría haber publicado. Hay una manera menos complicada y menos complicada de hacerlo, si el directorio no se ha creado dinámicamente.
Ponga un archivo index.html en blanco en ese directorio :)
y si está creando un directorio dinámicamente:
mkdir($dirname, 0644);
Configuraremos el directorio para que sea muy seguro, denegando el acceso para todos los tipos de archivos. A continuación se muestra el código que desea insertar en el archivo .htaccess.
Order Allow,Deny
Deny from all
Como ahora hemos establecido la seguridad, ahora queremos permitir el acceso a nuestros tipos de archivos deseados. Para hacerlo, agregue el siguiente código al archivo .htaccess bajo el código de seguridad que acaba de insertar.
<FilesMatch "/.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
su archivo .htaccess
final se verá como
Order Allow,Deny
Deny from all
<FilesMatch "/.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
Origen desde Permitir el acceso a tipos de archivos específicos en un directorio protegido
Crear index.php, index.html, index.htm no es seguro. Porque, cualquiera puede obtener acceso a tus archivos dentro del directorio especificado adivinando el nombre de los archivos. Ejemplo: http://yoursite.com/includes/file.dat Entonces, el método recomendado es crear un archivo .htaccess para denegar a todos los visitantes;). Que te diviertas !!
Cree el archivo de site/includes/.htaccess
y agregue esta línea:
Deny from all
En un archivo .htaccess
debes usar
Deny from all
Pon esto en el site/includes/.htaccess
para hacerlo específico al directorio includes
Si solo desea deshabilitar una lista de archivos de directorio, puede usar
Options -Indexes
Puede crear un archivo .htaccess para la carpeta, que debería haber denegado el acceso con
Deny from all
o puede redirigir a una página 404 personalizada
Redirect /includes/ 404.html
Puedes hacer esto dinámicamente de esa manera:
mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);
También puede poner este IndexIgnore *
en su archivo .htaccess raíz para deshabilitar la lista de archivos de todos los directorios de su sitio web, incluido el subdirectorio
También puedes denegar el acceso a una carpeta usando RedirectMatch
Agregue la siguiente línea a htaccess
RedirectMatch 403 ^/folder/?$
Esto devolverá un error 403 forbidden
para la carpeta, es decir: http://example.com/folder/
pero bloquea el acceso a los archivos y carpetas dentro de esa carpeta, si desea bloquear todo dentro de la carpeta, simplemente cambie el patrón de expresiones regulares. a ^/folder/.*$
.
Otra opción es mod-rewrite
Si url-rewrting-module
está habilitado, puede usar algo como lo siguiente en root/.htaccss
:
RewriteEngine on
RewriteRule ^folder/?$ - [F,L]
Esto mapeará internamente una solicitud para que la folder
forbidden
la página de error.