Ver Mensaje Individual
Antiguo , 04:01:08   #1
Exclamation ¿Cómo Evitar ataques SQL injection en Joomla? Calificación: de 5,00

Los mejores licores
Cada vez que creamos un componente para Joomla estamos aportando a que nuestro desarrollo sea la entrada a un atacante, pero obviamente no todo está perdido y en este post veremos unas pequeñas técnicas para disminuir los riesgos de seguridad.
Forzar los tipos de datos con el API de Joomla

Esta técnica es básicamente comprobar que los tipos de datos enviados si sean los que pedimos. ¿Cómo?, pues si por ejemplo el dato enviado fue un número de teléfono obviamente debe llevar solo números es necesario entonces comprobar que en realidad sean números.


Código PHP:
sql 'UPDATE #__mitabla SET `tel` = ' . (int) $ tel
Con (int) estamos forzando el tipo de dato a un entero.
Si estamos haciendo la validación con una fecha entonces usaremos JDate que es la herramienta que nos brinda Joomla para manuipular fechas:



Código PHP:
fecha =& JFactory::getDate($ mifecha);
sql 'UPDATE #__mitabla SET `date` = ' . $ db->quote( ->toMySQL(), false); 
Escapando las Cadenas (Strings)

Para escapar cadenas en Joomla es muy sencillo.


Código PHP:
sql 'UPDATE #__mytable SET `string` = ' . $ db->quote( $ db->getEscaped( $ string ), false ); 
Si estás utilizando el comando LIKE, puedes tener una vulnerabilidad DOS por no “escapar” los carácteres especiales % y _.
Joomla te facilita esta operación. ->getEscaped puede tener un segundo parámetro que los “escapará” por ti.



Código PHP:
sql 'UPDATE #__mytable SET .... WHERE `string` LIKE '.$ db->quote( $ db->getEscaped( $ stringtrue ), false ); 
Previniendo ataques DOS


Código PHP:
sql 'UPDATE #__mytable SET .... WHERE `string` LIKE '.$ db->quote( $ db->getEscaped( $ stringtrue ), false ); 

Previniendo ataques XSS

Hay métodos parecidos a JRequest que fuerzan las variables a comportarse como queremos.
Integers:


Código PHP:
int JRequest::getInt( $ name, $ default ); 
Floats (decimales)::


Código PHP:
float JRequest::getFloat( $ name, $ default ); 
Boolean (verdadero/falso)::

Código PHP:
bool JRequest::getBool( $ name,  ); 

Words (palabras, sólo letras y _):


Código PHP:
word JRequest::getWord( $ name, $ default ); 
Commands (Alfanuméricos, – y _ ):

Código PHP:
cmd JRequest::getCMD( $ name, $ default ); 

Texto libre de HTML::

Código PHP:
string JRequest::getString( $ name, $ default ); 
(Recuerden que todos los signos $ se deben poner pegados de la respectiva palabra que le sigue, yo los ubico despegados para que el código no se me desaparezca en el campo de texto.)

Comentarios Facebook

__________________




Si usted tiene problemas al acceder al foro o conoce alguien que los tenga por algún bloqueo de su proveedor de servicios de internet ENTRA AQUI aplique y difunda la solución


Necesitas contactar a algún miembro de nuestro staff para consultarle alguna duda? Necesitas asesoría?: CLICK AQUI

DeNuNCiaNDo.CoM
SieMPRe LoS MeJoReS

Sinclair no está en línea   Responder Citando

compartir
                 
Gold sep Silver sep Donar

marcaNo Calculado   #1.5
SponSor

avatar
 
Me Gusta denunciando
Estadisticas
Mensajes: 898.814
Me Gusta Recibidos: 75415
Me Gustado Dados: 62988
Fecha de Ingreso: 02 jun 2006
Reputacion
Puntos: 1574370
Ayudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen caminoAyudante de Santa está en el buen camino
emoticon Re: ¿Cómo Evitar ataques SQL injection en Joomla?

 
Los mejores licores
 
   
   
_______________________________________________
Publicidad :)
conectado
 
Page generated in 0,04542 seconds with 12 queries