Seguridad bajo PHP y MySQL

Por motivos del trabajo, últimamente nos hemos tenido que mirar bastante información sobre seguridad en PHP, y la realidad es que es muy fácil saltarse las barreras de seguridad de una web si no se toman medidas para evitarlo.

La buena noticia es que hay medidas bastante simples que se pueden tomar y que ayudan bastante a eliminar un alto índice de atacantes que emplean técnicas tradicionales. La mala noticia es que la seguridad nuca será algo infalible.

Para el caso de PHP existen 2 recomendaciones fundamentales para evitar la inyección de SQL, que es uno de los ataques más habituales y sencillos de realizar, normalmente sobre campos de búsqueda ya que implican siempre el uso de la cláusula WHERE y por tanto un camino sencillo para meter código SQL sin errores.

1) uso de funciones que comprueben los tipos de datos recibidos, para asegurarnos que lo que vamos a usar en la consulta es del tipo que tiene que ser. Esto se puede complementar con control de longitudes en caso de strings, ya que si el campo es de unos 10 caracteres de tipo texto, limitando a eso podemos evitar inserción de consultas por el mero hecho del tamaño del string.

2) uso de funciones que controlan el escape de caracteres de forma correcta. Hace tiempo en PHP se usaba el addslashes y stripslashes, o las famosas magic_quotes, pero con el tiempo por motivos de eficiencia y efectos secundarios, las funciones recomendadas son las siguientes:

Versiones de PHP inferiores a la 4.3 – mysql_escape_string
Versiones de PHP iguales o superiores a la 4.3 – mysql_real_escape_string

Entre todos los recursos que nos hemos ido encontrando y estudiando, estos son los que creemos más elaborados, fiables y útiles. Esperamos que os sirvan como lo están haciendo con nosotros (vais a ver que los tópicos que tratan son recurrentes pero no está de más los detalles que se pueden sacar de cada uno de ellos).

Seguridad en PHP

5 comentarios

  1. Dreamweaver utiliza una función muy bonita llamada GetSQLValueString(valor,tipo) muy útil para estas situaciones y bastante personalizable.

  2. Buen articulo, muchos programadores dejamos inconsientemente huecos que pueden ser aprovechados por hacker, estos tips son importantes para evitar eso. Saludos… sigan adelante

  3. muy buen aporte gracias es bueno tenerlo en cuenta a la hora de hacer nuestros proyectos

  4. otra funcion muy util que evita el php code injection es el strip_tags que elimina las etiquetas de php y html.

    es muy importante que no hagan includes usando variables que les pidan a los usuarios porque asi se puede inyectar codigo php atacante.

    aqui un recuros que lo aclara mejor

    http://www.virtualminds.es/php-attack1.pdf

    todavia mas importante que un buen script es la configuracion del servidor, si tienen la posibilidad de configurar el servidor dediquenle un tiempo a estudiar este aspecto porque vale la pena, asi podran evitar otros agujeros de seguridad en la web

    saludos y no tomen a la ligera lo de la seguridad

  5. simplemente genial el articulo, las injecciones y ataques a php pueden vulnerar los fallos de seguridad en nuestras paginas y estas recomendaciones sencillas son de gran utilidad.

Deja un comentario