SlideShare a Scribd company logo
1 of 26
Aplicaciones Web
Seguras (Anti-SQLi)
APLICACIONES WEB
SEGURAS

Este documento ha sido realizado por:
© Francisco José Cruz Jiménez
Diciembre 2013

Algunos derechos reservados. Este artículo se distribuye
bajo la licencia “Reconocimiento-NoComercial 4.0 Internacional "

de Creative Commons, disponible en
http://creativecommons.org/licenses/by-nc/4.0/

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

2
¿Qué son Aplicaciones Web?
En la ingeniería de software se
denomina Aplicación Web a
aquellas herramientas
informáticas que los usuarios
pueden utilizar accediendo a
un servidor web a través de
Internet o de una intranet,
normalmente accediendo
mediante un navegador web.
Francisco José Cruz Jiménez

Aplicaciones Web Seguras

3
Ventajas de usar App Web
• Usan un cliente ligero (Navegador web)
• No dependen del Sistema Operativo usado
• No hay instalaciones y no ocupa el espacio
correspondiente en disco
• Facilidad para la distribución y actualización
• Enorme número de clientes potenciales

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

4
Lenguajes más usados
Estas aplicaciones se codifica en
un lenguaje soportado por los
navegadores web, algunos de
estos lenguajes son:
PHP
Java (Java Servlets y JavaServer
Pages (JSP))
Javascript
Perl
Python
Ruby (Ruby on Rails)
Francisco José Cruz Jiménez

Aplicaciones Web Seguras

5
Cómo funcionan las App Web
Está normalmente estructurada por tres capas:
I. El navegador web ofrece la primera capa (la
interfaz que se muestra al usuario) .
II. Motor capaz de usar alguna tecnología web
dinámica, por ejemplo las mencionadas
anteriormente.
III. Una base de datos constituye la tercera y última
capa

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

6
Cómo funcionan las App Web
El navegador web manda peticiones a la capa
intermedia, y ésta ofrece servicios por medio de
consultas y actualizaciones a la base de datos y a
su vez proporciona una interfaz de usuario.
Una página Web puede contener elementos que
permiten una comunicación activa entre el
usuario y la información. Esto permite que el
usuario acceda a los datos de modo interactivo,
gracias a que la página responderá a cada una de
sus acciones, como por ejemplo rellenar y enviar
formularios o cualquier tipo de juego.
Francisco José Cruz Jiménez

Aplicaciones Web Seguras

7
Cómo funcionan las App Web

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

8
Problemas de seguridad en
Aplicaciones Web
 El tema de la creación de una Aplicación Web segura es muy
amplio ya que requiere realizar un estudio para conocer y
comprender las vulnerabilidades.
 Es esencial entender cómo usar estas características de
seguridad para enfrentarse a las amenazas, ya que con una
Aplicación Web se da un servicio a los usuarios, éstos, en la
mayoría de los casos, introducen y confían sus datos y sus
asuntos privados, así que para ofrecer un buen servicio a
aquellos que han confiado en usar la aplicación web hay que
mantener seguro y proteger sus datos e información
confidencial.
Francisco José Cruz Jiménez

Aplicaciones Web Seguras

9
Pautas a seguir para crear App
Web Segura
 Aunque a la hora de crear una aplicación web no se tenga
mucha experiencia en seguridad, existen unas medidas
básicas que siempre se deberían de adoptar para proteger
cualquier aplicación web.
 A continuación proporcionaré una lista de medidas de
seguridad mínima que se deberían aplicar a todas las
Aplicaciones Web.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

10
1. Recomendaciones generales
de seguridad en el servidor
 Utilizar firewall y establecer programas antivirus para
supervisar el trafico entrante y saliente.
 Mantener todo el software instalado totalmente actualizado.
 Ubicar el equipo del servidor en un lugar físico seguro.
 Cierra los puertos que no se utilicen
y desactive los servicios no usados.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

11
2. Ejecutar aplicaciones con
privilegios mínimos
 No ejecutar la aplicación identificado como el administrador
del sistema.
 Ejecutar la aplicación con un usuario con los mínimos
privilegios posibles.
 Mantener los archivos de la aplicación web en una carpeta
ubicada debajo del raíz de la aplicación.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

12
3. Protegerse contra entradas
malintencionadas
 Nunca dar por segura del todo una aplicación web ya que a
los usuarios malintencionados les resulta fácil enviar
información potencialmente peligrosa desde el cliente a la
aplicación.
 Establecer filtros.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

13
4. Mantener segura la
información confidencial
 Si la aplicación transmite información confidencial entre el
explorador y el servidor, utilizar el protocolo SSL.
 Utilizar algoritmos de cifrado de alta seguridad.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

14
5. Usar cookies de forma segura
 No almacenar información vital en cookies.
 Establecer el período de tiempo mínimo posible para la
fecha de expiración de las cookies.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

15
6. Protegerse contra amenazas
de denegación de servicio
 Establecer límites de tamaño para consultas a bases de datos
o subida de archivos.
 Configurar servidor para utilizar la regulación de procesos,
que evita que una aplicación use una cantidad
desproporcionada de la CPU.
 Seguir otras medidas
recomendadas para este
tipo de ataque.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

16
7. Acceso seguro a bases de
datos
 Usar el sistema de seguridad de la base de datos para limitar
quién puede tener acceso a los recursos de dicha base.
 Si la aplicación utiliza el acceso anónimo, crear un único
usuario con permisos muy limitados,
y hacer que las consultas se ejecuten
conectándose como dicho usuario.
 No crear instrucciones SQL
concatenando cadenas que contengan
información aportada por los usuarios.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

17
8. Crear mensajes de error
seguros
• No escribir mensajes de error que presenten información
que pudiera resultar útil a los usuarios malintencionados,
como un nombre de usuario.
• Configure la aplicación para que no muestre errores
detallados a los usuarios.
• Controlar bien las excepciones.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

18
SQL Injection
Este tipo de ataque consiste en inyectar código SQL en una
sentencia SQL ya programada, con el fin de alterar el
funcionamiento de la base de datos. Consiste en generar
consultas a la base de datos para que nos devuelva datos de
interés, como usuarios, contraseñas, información personal de los
clientes, etc...

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

19
Aplicaciones Web Anti-SQLi
Conocido el problema, ahora hay que poner una solución. Para
que una aplicación web no tenga esta vulnerabilidad, las medidas
que hay que tomar depende del lenguaje que se esté usando
para acceder a la base de datos, a continuación mostraré unos
ejemplos de cómo evitar SQLi en lenguajes comunes:

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

20
App Web Anti-SQLi: PHP
En el lenguaje PHP, hay diferentes funciones que pueden servir
de ayuda para usar con distintos sistemas de gestión de bases de
datos. Si se usa MySQL, la función a usar es
mysql_real_escape_string:
$query_result = mysql_query("SELECT * FROM usuarios WHERE
nombre = "" . mysql_real_escape_string($nombre_usuario) .
""");

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

21
App Web Anti-SQLi: Ruby
En el Framework Ruby on Rails las consultas son verificadas
automáticamente por cualquiera de los métodos de
búsqueda incluidos. Por ejemplo:
Project.find(:all, :conditions => ["name = ?",
params[:name]])
La única forma de que un usuario mal intencionado pueda
usar una inyección de SQL en RoR es que mediante código
se transforme la variable a tipo string y se utilice como
argumento de la búsqueda directamente.

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

22
App Web Anti-SQLi: Perl
En lenguaje Perl, el método DBI::quote filtra los caracteres
especiales:

$query = $sql->prepare
(
"SELECT * FROM usuarios WHERE nombre = "
.
$sql->quote($nombre_usuario)
);
Francisco José Cruz Jiménez

Aplicaciones Web Seguras

23
App Web Anti-SQLi: Java
En lenguaje Java, se puede usar la clase PreparedStatement:
Connection con = (acquire Connection)
PreparedStatement pstmt = con.prepareStatement("SELECT *
FROM usuarios WHERE nombre = ?");
pstmt.setString(1, nombreUsuario);
ResultSet rset = pstmt.executeQuery();

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

24
App Web Anti-SQLi: 'or'1'=1
La solución consiste en no concadenar los campos en la select
que se va a usar para verificar un usuario y contraseña, un
ejemplo de mal configuración:
Select id
from t_usuarios
where usuario='$usuario' and pass='$pass';

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

25
App Web Anti-SQLi: 'or'1'=1
Otro ejemplo:

Francisco José Cruz Jiménez

Aplicaciones Web Seguras

26

More Related Content

What's hot

Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuidaJorch Mendez
 
Instalacion de servidor de archivos en windows server
Instalacion de servidor de archivos en windows serverInstalacion de servidor de archivos en windows server
Instalacion de servidor de archivos en windows serverMichelle Gutierrez
 
Añadir Ubuntu al Active Directory
Añadir Ubuntu al Active DirectoryAñadir Ubuntu al Active Directory
Añadir Ubuntu al Active DirectoryCarlos Sornoza
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7New York
 
Instalación del servidor web en windows server 2008
Instalación del servidor web en windows server 2008Instalación del servidor web en windows server 2008
Instalación del servidor web en windows server 2008Michelle Gutierrez
 
Implementación vSphere Metro Storage Cluster
Implementación vSphere Metro Storage ClusterImplementación vSphere Metro Storage Cluster
Implementación vSphere Metro Storage ClusterRaGaZoMe
 
Proyecto final de administracion de redes
Proyecto final de administracion de redesProyecto final de administracion de redes
Proyecto final de administracion de redesFäbiän Alärcön
 
Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Sergio Santos
 
Manual de instalacion mysql
Manual de instalacion mysqlManual de instalacion mysql
Manual de instalacion mysqlKarina Quilca
 
Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Francisco Aguilar Smith
 
Implementacion del servidor de aplicaciones web (IIS)
Implementacion del servidor de aplicaciones web (IIS)Implementacion del servidor de aplicaciones web (IIS)
Implementacion del servidor de aplicaciones web (IIS)Melody Pablo
 
Manual de errores de instalación
Manual de errores de instalaciónManual de errores de instalación
Manual de errores de instalaciónTania Catemaxca
 
Instalación y configuración de Magento en centOS.
Instalación y configuración de Magento en centOS.Instalación y configuración de Magento en centOS.
Instalación y configuración de Magento en centOS.camilaml
 

What's hot (19)

Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuida
 
Instalacion de servidor de archivos en windows server
Instalacion de servidor de archivos en windows serverInstalacion de servidor de archivos en windows server
Instalacion de servidor de archivos en windows server
 
Añadir Ubuntu al Active Directory
Añadir Ubuntu al Active DirectoryAñadir Ubuntu al Active Directory
Añadir Ubuntu al Active Directory
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7
 
Instalación del servidor web en windows server 2008
Instalación del servidor web en windows server 2008Instalación del servidor web en windows server 2008
Instalación del servidor web en windows server 2008
 
Implementación vSphere Metro Storage Cluster
Implementación vSphere Metro Storage ClusterImplementación vSphere Metro Storage Cluster
Implementación vSphere Metro Storage Cluster
 
Proyecto final de administracion de redes
Proyecto final de administracion de redesProyecto final de administracion de redes
Proyecto final de administracion de redes
 
Conexión remota-a-oracle-database
Conexión remota-a-oracle-databaseConexión remota-a-oracle-database
Conexión remota-a-oracle-database
 
FTP con MySQL
FTP con MySQLFTP con MySQL
FTP con MySQL
 
Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)
 
Manual de instalacion mysql
Manual de instalacion mysqlManual de instalacion mysql
Manual de instalacion mysql
 
Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor
 
Implementacion del servidor de aplicaciones web (IIS)
Implementacion del servidor de aplicaciones web (IIS)Implementacion del servidor de aplicaciones web (IIS)
Implementacion del servidor de aplicaciones web (IIS)
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Cms apache2 miguel-lama
Cms apache2 miguel-lamaCms apache2 miguel-lama
Cms apache2 miguel-lama
 
Creacion de un IIS
Creacion de un IISCreacion de un IIS
Creacion de un IIS
 
IIS y APACHE
IIS y APACHEIIS y APACHE
IIS y APACHE
 
Manual de errores de instalación
Manual de errores de instalaciónManual de errores de instalación
Manual de errores de instalación
 
Instalación y configuración de Magento en centOS.
Instalación y configuración de Magento en centOS.Instalación y configuración de Magento en centOS.
Instalación y configuración de Magento en centOS.
 

Similar to Aplicaciones Web Seguras (Anti-SQLi)

Seguridad web
Seguridad webSeguridad web
Seguridad webcamposer
 
Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)Miguel de la Cruz
 
Seguridad en la web no confíes en el usuario
Seguridad en la web   no confíes en el usuarioSeguridad en la web   no confíes en el usuario
Seguridad en la web no confíes en el usuarioCarlos Soriano
 
Nueva Presentacion
Nueva PresentacionNueva Presentacion
Nueva Presentacioncsalcedok
 
Asp seguridad
Asp seguridad Asp seguridad
Asp seguridad gerardd98
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetssuser948499
 
Secure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarSecure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarAndrés Londoño
 
Seguridad app web
Seguridad app webSeguridad app web
Seguridad app webPatriciaU
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Alonso Caballero
 
Seguridad en Aplicaciones Web
Seguridad en Aplicaciones WebSeguridad en Aplicaciones Web
Seguridad en Aplicaciones Webguest80e1be
 
Clase 6 Practica.pptx
Clase 6 Practica.pptxClase 6 Practica.pptx
Clase 6 Practica.pptxFelipeLoaiza7
 
sistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar websistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar webbrenda carolina
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Raúl Requero García
 
Seguridad en servidores
Seguridad en servidoresSeguridad en servidores
Seguridad en servidoresTaty Millan
 
01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptxssusercb51cd
 

Similar to Aplicaciones Web Seguras (Anti-SQLi) (20)

Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Owasp proyecto
Owasp proyectoOwasp proyecto
Owasp proyecto
 
Seguridad en los sistemas web
Seguridad en los sistemas webSeguridad en los sistemas web
Seguridad en los sistemas web
 
Seguridad en la web no confíes en el usuario
Seguridad en la web   no confíes en el usuarioSeguridad en la web   no confíes en el usuario
Seguridad en la web no confíes en el usuario
 
Nueva Presentacion
Nueva PresentacionNueva Presentacion
Nueva Presentacion
 
Asp seguridad
Asp seguridad Asp seguridad
Asp seguridad
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internet
 
Secure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarSecure Development, Seguridad al Codificar
Secure Development, Seguridad al Codificar
 
Seguridad app web
Seguridad app webSeguridad app web
Seguridad app web
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0
 
Seguridad en Aplicaciones Web
Seguridad en Aplicaciones WebSeguridad en Aplicaciones Web
Seguridad en Aplicaciones Web
 
Clase 6 Practica.pptx
Clase 6 Practica.pptxClase 6 Practica.pptx
Clase 6 Practica.pptx
 
sistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar websistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar web
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
 
Seguridad en servidores
Seguridad en servidoresSeguridad en servidores
Seguridad en servidores
 
01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx
 

More from Francisco José Cruz Jiménez (11)

Proyecto Integrado ASIR
Proyecto Integrado ASIRProyecto Integrado ASIR
Proyecto Integrado ASIR
 
RAID
RAIDRAID
RAID
 
Instalación y Configuración de LDAP
Instalación y Configuración de LDAPInstalación y Configuración de LDAP
Instalación y Configuración de LDAP
 
OpenVPN
OpenVPNOpenVPN
OpenVPN
 
Instalación y configuración de Nagios
Instalación y configuración de NagiosInstalación y configuración de Nagios
Instalación y configuración de Nagios
 
Servidor HTTP IIS
Servidor HTTP IISServidor HTTP IIS
Servidor HTTP IIS
 
Servidor HTTP Apache
Servidor HTTP ApacheServidor HTTP Apache
Servidor HTTP Apache
 
Servidor de Correo
Servidor de CorreoServidor de Correo
Servidor de Correo
 
Instalación y configuración Servidor FTP y SSH
Instalación y configuración Servidor FTP y SSHInstalación y configuración Servidor FTP y SSH
Instalación y configuración Servidor FTP y SSH
 
Instalación y configuración de servidor DNS
Instalación y configuración de servidor DNSInstalación y configuración de servidor DNS
Instalación y configuración de servidor DNS
 
Configuración Servidor DHCP
Configuración Servidor DHCPConfiguración Servidor DHCP
Configuración Servidor DHCP
 

Recently uploaded

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 

Recently uploaded (20)

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 

Aplicaciones Web Seguras (Anti-SQLi)

  • 2. APLICACIONES WEB SEGURAS Este documento ha sido realizado por: © Francisco José Cruz Jiménez Diciembre 2013 Algunos derechos reservados. Este artículo se distribuye bajo la licencia “Reconocimiento-NoComercial 4.0 Internacional " de Creative Commons, disponible en http://creativecommons.org/licenses/by-nc/4.0/ Francisco José Cruz Jiménez Aplicaciones Web Seguras 2
  • 3. ¿Qué son Aplicaciones Web? En la ingeniería de software se denomina Aplicación Web a aquellas herramientas informáticas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet, normalmente accediendo mediante un navegador web. Francisco José Cruz Jiménez Aplicaciones Web Seguras 3
  • 4. Ventajas de usar App Web • Usan un cliente ligero (Navegador web) • No dependen del Sistema Operativo usado • No hay instalaciones y no ocupa el espacio correspondiente en disco • Facilidad para la distribución y actualización • Enorme número de clientes potenciales Francisco José Cruz Jiménez Aplicaciones Web Seguras 4
  • 5. Lenguajes más usados Estas aplicaciones se codifica en un lenguaje soportado por los navegadores web, algunos de estos lenguajes son: PHP Java (Java Servlets y JavaServer Pages (JSP)) Javascript Perl Python Ruby (Ruby on Rails) Francisco José Cruz Jiménez Aplicaciones Web Seguras 5
  • 6. Cómo funcionan las App Web Está normalmente estructurada por tres capas: I. El navegador web ofrece la primera capa (la interfaz que se muestra al usuario) . II. Motor capaz de usar alguna tecnología web dinámica, por ejemplo las mencionadas anteriormente. III. Una base de datos constituye la tercera y última capa Francisco José Cruz Jiménez Aplicaciones Web Seguras 6
  • 7. Cómo funcionan las App Web El navegador web manda peticiones a la capa intermedia, y ésta ofrece servicios por medio de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario. Una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios o cualquier tipo de juego. Francisco José Cruz Jiménez Aplicaciones Web Seguras 7
  • 8. Cómo funcionan las App Web Francisco José Cruz Jiménez Aplicaciones Web Seguras 8
  • 9. Problemas de seguridad en Aplicaciones Web  El tema de la creación de una Aplicación Web segura es muy amplio ya que requiere realizar un estudio para conocer y comprender las vulnerabilidades.  Es esencial entender cómo usar estas características de seguridad para enfrentarse a las amenazas, ya que con una Aplicación Web se da un servicio a los usuarios, éstos, en la mayoría de los casos, introducen y confían sus datos y sus asuntos privados, así que para ofrecer un buen servicio a aquellos que han confiado en usar la aplicación web hay que mantener seguro y proteger sus datos e información confidencial. Francisco José Cruz Jiménez Aplicaciones Web Seguras 9
  • 10. Pautas a seguir para crear App Web Segura  Aunque a la hora de crear una aplicación web no se tenga mucha experiencia en seguridad, existen unas medidas básicas que siempre se deberían de adoptar para proteger cualquier aplicación web.  A continuación proporcionaré una lista de medidas de seguridad mínima que se deberían aplicar a todas las Aplicaciones Web. Francisco José Cruz Jiménez Aplicaciones Web Seguras 10
  • 11. 1. Recomendaciones generales de seguridad en el servidor  Utilizar firewall y establecer programas antivirus para supervisar el trafico entrante y saliente.  Mantener todo el software instalado totalmente actualizado.  Ubicar el equipo del servidor en un lugar físico seguro.  Cierra los puertos que no se utilicen y desactive los servicios no usados. Francisco José Cruz Jiménez Aplicaciones Web Seguras 11
  • 12. 2. Ejecutar aplicaciones con privilegios mínimos  No ejecutar la aplicación identificado como el administrador del sistema.  Ejecutar la aplicación con un usuario con los mínimos privilegios posibles.  Mantener los archivos de la aplicación web en una carpeta ubicada debajo del raíz de la aplicación. Francisco José Cruz Jiménez Aplicaciones Web Seguras 12
  • 13. 3. Protegerse contra entradas malintencionadas  Nunca dar por segura del todo una aplicación web ya que a los usuarios malintencionados les resulta fácil enviar información potencialmente peligrosa desde el cliente a la aplicación.  Establecer filtros. Francisco José Cruz Jiménez Aplicaciones Web Seguras 13
  • 14. 4. Mantener segura la información confidencial  Si la aplicación transmite información confidencial entre el explorador y el servidor, utilizar el protocolo SSL.  Utilizar algoritmos de cifrado de alta seguridad. Francisco José Cruz Jiménez Aplicaciones Web Seguras 14
  • 15. 5. Usar cookies de forma segura  No almacenar información vital en cookies.  Establecer el período de tiempo mínimo posible para la fecha de expiración de las cookies. Francisco José Cruz Jiménez Aplicaciones Web Seguras 15
  • 16. 6. Protegerse contra amenazas de denegación de servicio  Establecer límites de tamaño para consultas a bases de datos o subida de archivos.  Configurar servidor para utilizar la regulación de procesos, que evita que una aplicación use una cantidad desproporcionada de la CPU.  Seguir otras medidas recomendadas para este tipo de ataque. Francisco José Cruz Jiménez Aplicaciones Web Seguras 16
  • 17. 7. Acceso seguro a bases de datos  Usar el sistema de seguridad de la base de datos para limitar quién puede tener acceso a los recursos de dicha base.  Si la aplicación utiliza el acceso anónimo, crear un único usuario con permisos muy limitados, y hacer que las consultas se ejecuten conectándose como dicho usuario.  No crear instrucciones SQL concatenando cadenas que contengan información aportada por los usuarios. Francisco José Cruz Jiménez Aplicaciones Web Seguras 17
  • 18. 8. Crear mensajes de error seguros • No escribir mensajes de error que presenten información que pudiera resultar útil a los usuarios malintencionados, como un nombre de usuario. • Configure la aplicación para que no muestre errores detallados a los usuarios. • Controlar bien las excepciones. Francisco José Cruz Jiménez Aplicaciones Web Seguras 18
  • 19. SQL Injection Este tipo de ataque consiste en inyectar código SQL en una sentencia SQL ya programada, con el fin de alterar el funcionamiento de la base de datos. Consiste en generar consultas a la base de datos para que nos devuelva datos de interés, como usuarios, contraseñas, información personal de los clientes, etc... Francisco José Cruz Jiménez Aplicaciones Web Seguras 19
  • 20. Aplicaciones Web Anti-SQLi Conocido el problema, ahora hay que poner una solución. Para que una aplicación web no tenga esta vulnerabilidad, las medidas que hay que tomar depende del lenguaje que se esté usando para acceder a la base de datos, a continuación mostraré unos ejemplos de cómo evitar SQLi en lenguajes comunes: Francisco José Cruz Jiménez Aplicaciones Web Seguras 20
  • 21. App Web Anti-SQLi: PHP En el lenguaje PHP, hay diferentes funciones que pueden servir de ayuda para usar con distintos sistemas de gestión de bases de datos. Si se usa MySQL, la función a usar es mysql_real_escape_string: $query_result = mysql_query("SELECT * FROM usuarios WHERE nombre = "" . mysql_real_escape_string($nombre_usuario) . """); Francisco José Cruz Jiménez Aplicaciones Web Seguras 21
  • 22. App Web Anti-SQLi: Ruby En el Framework Ruby on Rails las consultas son verificadas automáticamente por cualquiera de los métodos de búsqueda incluidos. Por ejemplo: Project.find(:all, :conditions => ["name = ?", params[:name]]) La única forma de que un usuario mal intencionado pueda usar una inyección de SQL en RoR es que mediante código se transforme la variable a tipo string y se utilice como argumento de la búsqueda directamente. Francisco José Cruz Jiménez Aplicaciones Web Seguras 22
  • 23. App Web Anti-SQLi: Perl En lenguaje Perl, el método DBI::quote filtra los caracteres especiales: $query = $sql->prepare ( "SELECT * FROM usuarios WHERE nombre = " . $sql->quote($nombre_usuario) ); Francisco José Cruz Jiménez Aplicaciones Web Seguras 23
  • 24. App Web Anti-SQLi: Java En lenguaje Java, se puede usar la clase PreparedStatement: Connection con = (acquire Connection) PreparedStatement pstmt = con.prepareStatement("SELECT * FROM usuarios WHERE nombre = ?"); pstmt.setString(1, nombreUsuario); ResultSet rset = pstmt.executeQuery(); Francisco José Cruz Jiménez Aplicaciones Web Seguras 24
  • 25. App Web Anti-SQLi: 'or'1'=1 La solución consiste en no concadenar los campos en la select que se va a usar para verificar un usuario y contraseña, un ejemplo de mal configuración: Select id from t_usuarios where usuario='$usuario' and pass='$pass'; Francisco José Cruz Jiménez Aplicaciones Web Seguras 25
  • 26. App Web Anti-SQLi: 'or'1'=1 Otro ejemplo: Francisco José Cruz Jiménez Aplicaciones Web Seguras 26