Skip to main content

La seguridad de PHP en Snyk Code ya está disponible de forma general

Escrito por
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog social php composer

26 de enero de 2022

0 minutos de lectura

Hace poco anunciamos nuestra versión beta con compatibilidad para PHP en Snyk Code, que permite identificar posibles vulnerabilidades de seguridad de PHP en el código. Tras un exitoso programa de beta pública, la compatibilidad con la seguridad de PHP en Snyk Code ya está disponible de forma general.

PHP es un lenguaje de programación popular que usan desarrolladores de todo el mundo. En esta publicación del blog, veremos algunas de las funciones de Snyk Code y cómo usarlo con PHP. También incluiremos algunos ejemplos para ayudarte a empezar, tanto si estás dando tus primeros pasos como si tienes experiencia como desarrollador.

Novedades de la disponibilidad general

La compatibilidad con la seguridad del lenguaje PHP en Snyk Code se suma a nuestra funcionalidad existente de análisis de PHP, que analiza los manifiestos de Composer para identificar vulnerabilidades en bibliotecas de código abierto y dependencias.

Además, la extensión de Snyk para Visual Studio Code ahora también admite el análisis de código y de Composer para PHP. Esto es especialmente útil porque resalta código que podría no ser seguro mientras lo escribes y te avisa si hay vulnerabilidades ocultas en una biblioteca de código abierto o una dependencia.

Código PHP en Visual Studio Code que muestra una advertencia de Snyk sobre datos HTTP sin sanear que llegan a mysqli_query.

La versión de disponibilidad general de PHP en Snyk Code te permite profundizar en los problemas y rastrearlos a través del código cuando sea necesario. Esto resulta útil al tratar con funciones rastreables que pueden originarse en otros puntos del código.

Análisis de inyección SQL de Snyk Code que muestra una entrada HTTP sin sanitizar que llega a una llamada mysqli_query en tasks.php.

Prueba el análisis de Snyk Code con nuestra app de demostración para PHP

En Snyk, nos encanta crear aplicaciones de demostración intencionalmente vulnerables, a las que llamamos apps goof. Son una excelente manera de probar en la práctica y encontrar vulnerabilidades reales. Con el lanzamiento de la compatibilidad con PHP en Snyk Code, agregamos una app PHP goof.

Veremos algunos ejemplos con la app PHP goof. Para probarla, necesitarás una cuenta de Snyk. Si todavía no tienes una, puedes crear una gratis en segundos.

Para empezar, inicia sesión en el panel de Snyk y agrega un proyecto. Para este análisis, puedes usar la opción monitorear repositorio público para analizar el repositorio de la app PHP goof, o puedes bifurcar el código y conectarlo al repositorio que prefieras.

Panel de seguridad que muestra el repositorio snyk-labs/php-goof, con análisis de código y recuento de vulnerabilidades por nivel de gravedad en composer.lock.

Consejo profesional: El análisis de repositorios públicos también es útil para analizar proyectos de código abierto que usas todos los días.

El análisis toma solo unos instantes, y enseguida puedes ver que se identificaron algunos problemas tanto en el código como en los manifiestos de paquetes. Snyk Code identifica docenas de tipos de problemas y, literalmente, millones de combinaciones de origen y destino en los flujos de datos. Veamos dos ejemplos muy comunes con la app PHP goof.

Inyección SQL

Lo primero que notarás después de ejecutar un análisis es lo fácil que Snyk Code hace revisar tu código. En la captura de pantalla de abajo, puedes ver que identifica una consulta a la base de datos a la que se le pasan datos de entrada sin sanitizar.

Análisis de inyección SQL de Snyk Code que muestra una entrada HTTP sin sanitizar que llega a una llamada mysqli_query de PHP.

Además de mostrar vulnerabilidades de forma rápida y clara, Snyk Code también ofrece análisis de correcciones y recomendaciones para remediar los problemas. Si desarrollas en PHP y no tienes mucha experiencia en seguridad, quizá no sepas que hay varias formas de procesar los datos de entrada de manera segura en PHP, ya sea mediante una biblioteca o con la función filter_var. Snyk te brinda la experiencia en seguridad en tiempo real que necesitas para mantener tu código seguro y te ayuda a aprender en el proceso.

Si te interesa aprender más sobre la seguridad de PHP, consulta nuestra publicación 5 formas de prevenir la inyección de código en PHP.

Uso de credenciales incorporadas directamente en el código

En la app goof, usamos intencionalmente credenciales de MySQL codificadas para que aparezcan en el análisis de Snyk Code. Como puedes ver en la captura de pantalla de abajo, Snyk Code las detectó y señaló como un problema. (Una forma más segura de gestionar las credenciales en el código sería almacenarlas como variables de entorno, ya sea en la plataforma o en un archivo de entorno).

Pantalla de Snyk Code que resalta una contraseña de base de datos PHP codificada directamente y pasada a mysqli_connect en db.php

Vulnerabilidades de código abierto

Además, el análisis también identificó un problema con una versión de una biblioteca de código abierto incluida en el manifiesto de Composer. La incluimos intencionalmente en la app para mostrar cómo puede introducirse una vulnerabilidad de cross-site scripting.

Registro de vulnerabilidad de seguridad de league/commonmark que muestra un problema de secuencias de comandos entre sitios de gravedad media, CVSS 6.5 y una corrección en la versión 0.18.3.

Empieza a proteger tus proyectos de PHP

Nos entusiasma que la compatibilidad con PHP en Snyk Code ya esté disponible de forma general, y esperamos que a ti también. Pruébala con una cuenta gratuita de Snyk y envíanos tus comentarios.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.

Leer más

blog feature snyk container custom base recommendations
Blog

AppSec agéntica: el desarrollo de software se volvió agéntico. La seguridad, no.

El desarrollo impulsado por IA supera el ritmo de los flujos de trabajo de seguridad tradicionales. Agentic AppSec de Snyk usa agentes de seguridad para encontrar, corregir y verificar vulnerabilidades de forma continua, mientras las personas definen el estándar.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

illustration hero ai
Blog

El huracán de la IA ha llegado

La IA está acelerando por igual la creación de software y los ciberataques. Los líderes deben proteger los agentes y el código desde el inicio, aplicar controles en tiempo de ejecución y validar las defensas de forma independiente.