944 063 154

Blog

PHP 7.2: mejoras en las funciones y aumento de la seguridad

Publicado enDesarrollo web en febrero 14, 2018 10:00 am

Es de sobra conocido que PHP es uno de los lenguajes de programación más utilizado para el desarrollo de todo tipo de aplicaciones, de ahí que se encuentre en actualización continua para adaptarse a las nuevas tecnologías y necesidades.  En las últimas semanas, han lanzado su última versión: PHP 7.2.

La nueva versión de PHP incluye diversas funciones y mejoras que te ayudarán a escribir código y a que se ejecute de una forma más rápida. Todo ello permite que se reduzcan los recursos necesarios para el desarrollo y mantenimiento de las aplicaciones. Asimismo, PHP 7.2 contribuye a aumentar la seguridad mediante librerías que no requieren de API externa.

Las mejoras de PHP 7.2

Entre las principales mejoras de este lenguaje backend se encuentra el cambio en la declaración del tipo de argumento. Esto ya estaba disponible en PHP 5, y mejoró en PHP 7.0, pero en la última versión ha sufrido ligeras modificaciones. Con PHP 7.2 es posible declarar “object” como tipo de argumento o retorno en funciones.

PHP no permite variaciones en los tipos de parámetros de métodos heredados. Pero con la llegada de PHP 7.2 sí es posible omitir un tipo en una subclase (“type widening”) sin que se produzca un error de concordancia. De esta forma sería posible implementar tipos en los argumentos de librerías sin tener que modificar clases en otras librerías o aplicaciones que dependan de las mismas.

Por último, se añade la posibilidad de incluir coma final al utilizar la construcción “list()”.

Mayor seguridad

La última versión de PHP también incluye cambios en relación con la seguridad. El primero de ellos es la incorporación de Libsodium al núcleo. Libsodium es una librería multiplataforma y moderna para criptografía. Permite cifrar, descifrar, firmar y crear hashes. Por otro lado, PHP 7.2 incorpora soporte nativo para Argon2, un algoritmo de hashing, como alternativa a Bcrypt.

Funciones obsoletas

Aunque acaban de presentar la versión 7.2, desde PHP ya se comienza a hablar de algunos cambios que tendrá PHP 8.0. Todos ellos relacionados con funciones que se eliminarán y que ya recomiendan no utilizar.

  • function __autoload. Esta función fue reemplazada por por spl_autoload_register en PHP 5.1.
  • $php_errormsg. Con PHP 7.2 es recomendable utilizar error_get_last y error_clear_last en su lugar.
  • create_function(). Por diversos problemas de seguridad y debido a su bajo rendimiento, se recomienda utilizar “closures”.
  • parse_str () sin segundo parámetro. PHP comenzará a advertir cada vez que se use la función sin pasar por el segundo parámetro.
  • gmp_random(). En lugar de utilizar esta función deberá usarse gmp_random_bits() y gmp_random_rage().
  • assert(). Su resultado abre una vulnerabilidad de ejecución remota de código (RCE). Por ello, se recomiendael uso de zend.assertion ini.
  • Tampoco se recomienda el uso de mbstring.func_overload, (unset) cast, each() y $errcontext. Estas funciones han sido declaradas como obsoletas por resultar poco útiles.

Si PHP es uno de los lenguajes de programación más utilizados es, en parte, por su relación con WordPress, ya que el CMS está desarrollado con PHP. Pero, lamentablemente, la mayoría de usuarios de WordPress no acostumbra a actualizar su versión de PHP. De ahí que más de un 70% de las webs aún usen PHP 5.6 o incluso versiones más antiguas. Esto, además de ser un peligro de cara a la seguridad, puede ocasionar problemas de rendimiento.

Desde Linube recomendamos la actualización, al menos, a PHP 7. De esta forma, tu web irá mucho más rápida y será capaz de ejecutar un mayor número de transacciones por segundo que en cualquier versión anterior.

Por nuestra parte, ya contamos con PHP 7.2 en todos nuestros servicios.