Jun
23
2009

Protegerse y evitar ataques DoS, SQL injection, XSS, Robots malignos, etc


Todos hemos tenido la preocupación de que nuestra web no sea segura y necesitamos una manera de comprobarlo. Todo lo que tenemos que hacer es editar nuestro archivo .htaccess e incluir estas lineas:

## Seguridad extra para PHP
php_flag safe_mode on
php_flag expose_php off
php_flag display_errors off

## Manejo de errores de Apache. Cuando se produzca uno de estos errores, redirigimos a una pagina especial desarrollada por nosotros.
ErrorDocument 401 /error401.html
ErrorDocument 403 /error403.html
ErrorDocument 404 /error404.html

RewriteEngine On

Options +FollowSymLinks
# Evitar escaneos y cualquier intento de manipulación malintencionada
# de la URL. Con esta regla es imposible lanzar ataques de inyección (SQL, XSS, etc)
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python |nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR]

RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]
RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23 |%27|%60)(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23 |%60)(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]
RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]

RewriteRule ^(.*)$ error.php [NC]
## No permitir acceso al .htaccess
order allow,deny
deny from all

## Evitar que se liste el contenido de los directorios
Options All -Indexes

## Lo mismo que lo anterior
IndexIgnore *

## Denegar el acceso a robots dañinos, browsers offline, etc
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
##redireccionar a los robots a otra web
RewriteRule ^.*$ http://www.otraweb.com [R,L]

# Protegerse contra los ataques DOS limitando el tamaño de subida de archivos
LimitRequestBody 10240000

Espero que les sirva de ayuda en sus proyectos. Saludos.

NOTA: Si os da problemas el copiar y pegar estas lineas del Blog, descarga el siguiente archivo: htaccess-antiddos.txt y renombralo despues en tu servidor a .htaccess

Written by Javier Rodriguez in: Informática,Redes,Web | Etiquetas: , , , ,

4 Comments »

  • web

    hola , al poner el archivo, sale “internal server error, The server encountered an internal error or misconfiguration and was unable to complete your request.” en ambos en local y en el server.

    Comment | 30 de octubre de 2009
  • Puede ser porque has copiado y pegado sin mas, y eso es un problema porque hay varias lineas del RewriteCond que aqui en el Blog ocupan dos lineas y realmente deberian ocupar una sola linea. Voy a modificarlo ahora para evitar mas futuros errores.

    Gracias.

    Comment | 4 de noviembre de 2009
  • Se que este post tiene SU tiempo, pero He copiado correctamente las lineas, ingresando al link que has dejo alli debajo. Y aun asi me devuelve: “Error en el servidor” (Error 500).

    Comment | 23 de septiembre de 2010
  • Esas mismas lineas las he probado yo y funciona perfectamente. Puedes ir probando a ir introduciendo linea a linea hasta ver cual es la que falla…

    Comment | 21 de octubre de 2010

RSS feed for comments on this post. TrackBack URL

Leave a comment

Theme: TheBuckmaker.com Blog Themes | Hostpapa customer, Berlin