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
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.
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.
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).
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…