Protegerse y evitar ataques DoS, SQLi, XSS, Robots malignos con htaccess

Daniel B. Seguir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
Todo lo que tenemos que hacer es editar nuestro documento .htaccess y añadir estas lienas:
Son medidas complementarias, toca estudiar si son incompatibles con algún CMS, cosa que no creo que suceda, recuerda que el mal uso de htaccess generará en tu sitio el error 500 Internal Server Error.

## 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 ^.*$ Otraweb.com - otra web Resources and Information.This website is for sale! [R,L]

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

Kentaurus

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
11 Sep 2003
Mensajes
99
php_flag safe_mode on
php_flag expose_php off
php_flag display_errors off

El safe mode hay que tener cuidado porque puede dañar los uploads. Hay una configuración especial en las opciones de vBulletin para lidiar con el subir archivos cuando está activado el modo seguro.

Si están en servidor dedicado esta opción es inútil. Lo único que tiene de seguro es que otras personas en una cuenta compartida no puedan ver tu información, realmente. La configuración es tan malinterpretable que ya no existe en PHP 6.0

En caso de apagar el "display_errors" es recomendable registrar los errores en algun lado .. o sea .. poniendo la variable log_errors en on y el error_log en una ruta con permisos de escritura. De otra forma encontrar un error puede ser considerablemente más difícil ya que solo se verá una página en blanco al cargar el foro. (Mas info para display_errors: PHP Configuration Directives - O'Reilly Media)
 

Daniel B.

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
he puesto eso y me da error 500,¿que puedo hacer? :D

Lol, jaja, lo primero que digo.
Ha de ser algún comando que no está permitido en tu servidor, esto es una recopilación y no te sugiero usar todos,

Saber por qué te da el error 500 es muy difícil... ni idea,
 

djmlbp

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Feb 2009
Mensajes
218
Lol, jaja, lo primero que digo.
Ha de ser algún comando que no está permitido en tu servidor, esto es una recopilación y no te sugiero usar todos,

Saber por qué te da el error 500 es muy difícil... ni idea,
Bueno, pues entonces seguiremos como estamos :D

Gracias de todos modos ;)
 
Arriba