Sql injection

Solo disponible en BuenasTareas
  • Páginas : 14 (3402 palabras )
  • Descarga(s) : 11
  • Publicado : 30 de junio de 2010
Leer documento completo
Vista previa del texto
SQL Injection

Inyección SQL
Es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o descript que esté incrustado dentro de otro.
Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código "invasor" en la base de datos.
La inyección SQL es un problema de seguridad informática que debe ser tomado en cuenta por el programador para prevenirlo. Unprograma hecho con descuido, displicencia, o con ignorancia sobre el problema, podrá ser vulnerable y la seguridad del sistema puede quedar ciertamente comprometida. Esto puede suceder tanto en programas ejecutándose en computadores de escritorio, como en páginas Web, ya que éstas pueden funcionar mediante programas ejecutándose en el servidor que las aloja.
La vulnerabilidad puedeocurrir cuando un programa "arma" descuidadamente una sentencia SQL, con parámetros dados por el usuario, para luego hacer una consulta a una base de datos. Dentro de los parámetros dados por el usuario podría venir el código SQL inyectado.
Al ejecutarse esa consulta por la base de datos, el código SQL inyectado también se ejecutará y podría hacer un sinnúmero de cosas, como insertarregistros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar código malicioso en el computador.
Asumiendo que el siguiente código está en una aplicación web y que existe un parámetro "nombreUsuario" que contiene el nombre de usuario que nosotros le demos, la inyección SQL es posible:

Protegerse y evitar ataques DoS, SQL injection, XSS, Robots malignos, etc
Tags:evitar-ataques ataque xss sql-injection robots
Todos hemos tenido la preocupación de que nuestra web no sea segura y necesitamos una manera de comprobarlo. Extendiendo mi artículo anterior de Comprobar seguridad de la web con php, con este nuevo 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:
view plaincopy to clipboardprint?
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} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]   
25....
tracking img