miércoles, 28 de julio de 2010

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. Con este artículo veremos una forma eficaz de evitar ataques DoS, inyecciones de SQL, XSS, Robots malignos, evitar que se listen los directorios de la web, etc.

Todo lo que tenemos que hacer es editar nuestro archivo .htaccess e incluir estas lineas:
1. ## Seguridad extra para PHP
2. php_flag safe_mode on
3. php_flag expose_php off
4. php_flag display_errors off
5.
6. ## Manejo de errores de Apache. Cuando se produzca uno de estos errores, redirigimos a una pagina especial desarrollada por nosotros.
7. ErrorDocument 401 /error401.html
8. ErrorDocument 403 /error403.html
9. ErrorDocument 404 /error404.html
10.
11.
12. RewriteEngine On
13.
14. Options +FollowSymLinks
15. # Evitar escaneos y cualquier intento de manipulación malintencionada
16. # de la URL. Con esta regla es imposible lanzar ataques de inyección (SQL, XSS, etc)
17. RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
18. RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]
19. RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]
20. RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]
21. 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]
22.
23. RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]
24. RewriteCond %{HTTP_REFERER} ^(.*)(|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]
25. RewriteCond %{QUERY_STRING} ^(.*)(|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR]
26. RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]
27. RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]
28.
29. RewriteRule ^(.*)$ error.php [NC]
30. ## No permitir acceso al .htaccess
31. order allow,deny
32. deny from all
33.
34. ## Evitar que se liste el contenido de los directorios
35. Options All -Indexes
36.
37. ## Lo mismo que lo anterior
38. IndexIgnore *
39.
40. ## Denegar el acceso a robots dañinos, browsers offline, etc
41. RewriteBase /
42. RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
43. RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
44. RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
45. RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
46. RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
47. RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
48. RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
49. RewriteCond %{HTTP_USER_AGENT} ^Zeus
50. ##redireccionar a los robots a otra web
51. RewriteRule ^.*$ http://www.otraweb.com [R,L]
52.
53. # Protegerse contra los ataques DOS limitando el tamaño de subida de archivos
54. LimitRequestBody 10240000

Ante todo tambien debemos de tomar medidas de seguridad en nuestra web, limitando el acceso a nuestros archivos ftp, solo a un administrador, y protegiendonos de la mas temida vulnerabilidad de la que casi nada se puede hacer y que pocos conocen, llamada LFI (Local File Inclusion).

Related Posts:

  • Construcción de un Sistema MVC en PHP - Parte 1Para esta primera parte de este Tutorial, debemos de entender primero a cabalidad lo que es MVC. Usaremos para este tutorial lo siguiente: _ PHP 5.2.x _ MySql 5.x _ Apache 2.x Aquí recomiendo instalar appserver 2.5.10 como… Read More
  • Parámetros en .htaccess .htaccess (Acceso de Hiper-Texto) es un archivo de texto que Apache usa para crear reglas sobre los directorios y los archivos. Tiene múltiples funciones y en lo personal me parece una herramienta sumamente … Read More
  • MVC en PHP 5 POO Segunda Parte._ Siguiendo con la segunda parte de este Construccion de un sistema MVC en PHP Parte 1 , veremos el archivo .htaccess, la seguridad en el, el mod_rewrite, el uso de PDO en la capa modelo, además veremos el uso de SQL standar,… Read More
  • Mi Primer MVC_ En estos días me encuentro realizando el sitio web de http://www.uvkmulticines.com y aplicando mis conocimientos de MVC en php5 usando PDO, además uso el patron Singleton y el patrón FrontController, cuando termine el pro… Read More
  • Directivas de .htaccess Directivas de .htaccess De forma general se puede decir que las directivas en el .htaccess se componen de tres partes: el tipo de directiva (Options, RewriteCond), los parámetros de la directiva y por último el final de… Read More

0 comentarios:

Publicar un comentario