.htaccess básico

  • 0 Respuestas
  • 1920 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xyz

  • *
  • Ex-Staff
  • *****
  • Mensajes: 533
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • Under0cde

.htaccess básico

  • en: Septiembre 25, 2017, 05:15:46 pm
Es interesante conocer el concepto antes de continuar con algunos ejemplos gráficos.

Que es .Htaccess ?
Htaccess es la abreviatura de Hypertext Access. Se trata de un archivo de configuración utilizado por servidores web basados en apache. Este tipo de archivos configura los ajustes iniciales de un programa o, como ocurre en este caso, del servidor. Esto significa que se puede utilizar el archivo .htaccess para que el servidor se comporte de una determinada forma. Cada función es básicamente una línea de texto, o código, que indica al servidor lo que tiene que hacer. Puede añadir o cambiar la funcionalidad añadiendo o cambiando el código en el archivo .htaccess.

Fuente: www.one.com/es/support/faq/que-es-htaccess

Entonces, al conocer que es un simple archivo de texto, él mismo debe ser insertado en la carpeta raiz del sitio web / ó en la carpeta que se desee proteger /www/documentos/.

Para poder trabajar con .htaccess basta con tener un servidor web corriendo, un navegador y un editor de preferencia.

El sitio sobre el que veremos el ejemplo será el siguiente:



Como muestra la imagen anterior, se listan todas las carpetas y archivos en el directorio raiz /.

El archivo htaccess es un archivo oculto, por lo tanto, no será visible via web (aunque..... es cuestión de verificar).

Entonces, vemos que hay un archivo con nombre passwd y si hacemos clic sobre él, mostrará información útil:



Ahora, si queremos bloquear que los archivos no sean listados desde un navegador, deberemos crear el archivo .htaccess y agregar la siguiente línea:

Código: (php) [Seleccionar]
Options All -Indexes
Recargamos el sitio web, y quedará de la siguiente manera:



Aclaración: Para que sea visible en el editor lo que vamos realizando, la siguiente imagen mostrara el archivo creado con la línea insertada; luego de aquí seguiremos unicamente agregando códigos y modificando.



La primer imagen mostraba un archivo passwd, si queremos que no se indexe solo basta escribir la siguiente línea:

Código: (php) [Seleccionar]
IndexIgnore passwd
Y el sitio mostrará el siguiente contenido:



Al ingresar a la carpeta Mis Documentos, encontramos la siguiente información:



Si queremos restringir el acceso a los archivos .txt solo hay que añadir la siguiente línea de código:

Código: (php) [Seleccionar]
IndexIgnore *.txt
Como la siguiente imagen muestra, los archivos con extensión .txt no son indexados.




De la misma forma es posible añadir todas las extensiones que sean necesarias para evitar la indexación.

Si es necesario evitar la indexación completa de una carpeta, solo agregamos la siguiente línea:

Código: (php) [Seleccionar]
IndexIgnore Mix_Documentos


Recordando que dentro de la carpeta Mix_Documentos hay un archivo metasploitable.txt, lo que haremos será ocultarlo (es un ejemplo sencillo, imaginen si un server expone archivos de configuración en texto plano); con la diferencia que no será accesible desde la url.

Entonces, creamos un htaccess dentro de la carpeta que vamos a proteger el/los archivos de configuración e insertamos el siguiente código:

Código: (php) [Seleccionar]
<Files metasploitable.txt>
order allow,deny
deny from all
</Files>

De ésta manera, podremos conjugar seguridad con privacidad.

Continuando, con detalles del archivo de configuración.

A veces queremos redirigir al visitante de una forma sutil, entonces lo que hacemos es escribir la siguiente línea.

Código: (php) [Seleccionar]
Redirect 301 /seguridad_htaccess/Documentos_Pdf/index.html https://google.com
Donde indicamos que, al acceder a la ruta Documentos_Pdf y lea el Index.html lo reenvie a google.

Vemos las imágenes.



Luego de añadir el código del redirect 301 y recargar la página web, créanme que redirige a el sitio de google (tambíen pueden hacer las pruebas).



Ahora, ahondaremos en conceptos un poco mas tangibles.

Como utilizar páginas de errores personalizadas.

Código: (php) [Seleccionar]
ErrorDocument 400 /error/e400.html
ErrorDocument 401 /error/e401.html
ErrorDocument 403 /error/e403.html
ErrorDocument 404 /error/e404.html
ErrorDocument 500 /error/e500.html

Lo que debemos hacer es, para cáda código de error crar una página web personalizada; entonces cuando el visitante ingresa al sitio, en vez de encontrar los típicos mensajes de error del servidor, verá las que decidimos enseñar.

Para el caso explicaré la estructura de las líneas de código:
  • ErrorDocument 404: Es el código de error.
  • /error/: Es la ruta absoluta donde se encuentra/n lás páginas de errores personalizadas.
  • e404.html : Es el archivo que será mostrado al visitante.

Entonces, al ingresar a un lugar que no contenga el archivo que buscamos, obtendremos:



Y con el mensaje de error personalizado, el visitante verá lo siguiente:



<hr>

Hay más opciones y parámetros para trabajar en un .htaccess es cuestión de lanzar un server e ir testeando el rendimiento, como plus; dejo el siguiente código:

Código: (php) [Seleccionar]
# EVITAR ALGUNOS BOTS Y RIPPERS

Options -Indexes
RewriteEngine on
#Spammers
RewriteCond %{REMOTE_HOST} 12.226.240.248 [OR]
RewriteCond %{REMOTE_HOST} 24.111.102.26 [OR]
RewriteCond %{REMOTE_HOST} 24.117.121.113 [OR]
RewriteCond %{REMOTE_HOST} 65.30.216.140 [OR]
RewriteCond %{REMOTE_HOST} 67.87.64.23 [OR]
#Abusivos
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bolt 0 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:[email protected] [NC,OR]
RewriteCond %{HTTP_USER_AGENT} CazoodleBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [NC,OR]
RewriteRule ^.* - [F,L]
#Bloquear bot abusivos por IP
order allow,deny
allow from all
deny from 8.21.4.254
deny from 65.160.238.176/28
deny from 85.92.222.0/24
deny from 206.51.36.0/22
deny from 216.52.23.0/24

Aclaración: AL UTILIZAR LA BANDERA [L] INDICA QUE NO PROCESE

<hr>

La fuente es de varios ejemplos tomados de internet y depurados siendo fuente propia.

Un saludo .!