¿Que es un «timing attack» en PHP?

Esto del timing attack puede hacer que tu cabeza explote cuando veas dónde puede llegar a haber agujeros de seguridad en tu aplicación web. El mecanismo de ataque se basa en medir el tiempo que tarda una aplicación en procesar una información. A continuación un ejemplo que es una explicación muy por encima y simplificada … Leer más

El fichero de configuración phpunit.xml en PHP

Operadores en PHP

En un artículo reciente expliqué cómo instalar y configurar PHPUnit. Seguramente recordarás que usábamos el comando: $ vendor/phpunit/phpunit/phpunit al que le pasábamos parámetros. Un parámetro es la carpeta que contiene los test. También podemos pasar el parámetro –color para que se nos muestren los test más elegantes. Y hay más parámetros. Para evitar tener que … Leer más

Los métodos no deberían tener que llamarse en un orden determinado

Si para llamar a un método antes tienes que llamar a algún otro método… mal asunto. Algo no estás haciendo bien. Vamos a usar como ejemplo una clase que envía un mensaje cifrado: Aparentemente está todo correcto ¿no? Mmm, prueba a ejecutar este código (que, por cierto, necesita de la versión de PHP7.4 o superior). … Leer más

Cómo cambiar un valor del .env de Laravel en un test de PHPUnit

Seguro que ya sabes que a través del fichero phpunit.xml puedes modificar los valores del fichero .env. Por ejemplo puedes hacer que se use una base de datos en memoria para acelerar los test o cambiar el entorno a «testing»: Pero a veces nos interesa cambiar un valor para un único test. Si ese es … Leer más

Migraciones en Laravel: Añadir columna solo si no existe

Las migraciones de Laravel son una herramienta fantástica. Permiten a todo el equipo tener la misma estructura de la base de datos sin tener que andar compartiendo ficheros sql. Basta con hacer un simple: $ php artisan migrate Y ya tenemos la misma estructura que el resto de gente del equipo. Normalmente las migraciones crean … Leer más

Por qué no debes ignorar los warnings y deprecations en PHP

¿Qué hay más molesto que estar viendo continuamente «warnings» (avisos) y mensajes de «deprecated»? Tiene una solución muy fácil: ¡desactivar estos mensajes! Total ¿qué es lo peor que puede pasar? El problema de ignorar «warnings» y «deprecated» ¿Lo peor que puede pasar? ¿Qué tal que se te acabe colando un error en producción? «Deprecated», si … Leer más