Zend Framework 3 sigue las mejores prácticas para darnos un código base seguro para nuestro sitio web. Los creadores ZF3 publican parches de seguridad una vez que la comunidad de usuarios encuentran un problema. Podemos incorporar estas correcciones con un solo comando mediante el administrador de dependencias Composer.
La práctica a demostrado que usar un framework para escribir un sitio web es más seguro que usar PHP «puro» porque no necesitamos reinventar la rueda. En un framework la mayoría de las vulnerabilidades ya se conocen y han sido corregidas por la comunidad de usuarios.
ZF3 provee las siguientes características que hacen a nuestro sitio web más seguro:
Script de entrada (index.php
) es el único script de PHP accesible a los
visitantes. Todos los archivos PHP están almacenados fuera de la raíz de
documentos de Apache. Esto es más seguro que permitir a todos visitar
cualquiera de nuestros scripts de PHP.
El direccioamiento (routing) permite definir reglas estrictas para establecer la URL de cada una de las páginas del sitio web. Si un usuario ingresa una URL invalida en la barra de navegación del navegador web aquel será redirigido automáticamente a la página de error.
Listas de Control de Acceso (ACL) y Control de Acceso Basado en Roles (RBAC) permite definir reglas flexibles para conceder o negar el acceso a determinado recurso de nuestro sitio web. Por ejemplo, un usuario anónimo tendría acceso únicamente a nuestra página index, los usuarios autenticados tendrían acceso a su página de perfil y el usuario administrado tendría acceso al panel de administración del sitio.
Validadores y filtros de formulario aseguran que ningún dato no deseado se colecte a través de los formularios web. Los filtros, por ejemplo, permiten cortar las cadenas de caracteres y quitar las etiquetas HTML. Los validadores se usan para revisar que los datos que se han enviado a través del formulario cumplen determinadas reglas. Por ejemplo, el validador de correo electrónico revisa que un campo email contiene un correo electrónico valido y si no es así lanza un error que obliga al usuario del sitio a corregir los errores de entrada.
Captcha y CSRF (Cross-Site Request Forgery) son elementos del formulario que respectivamente se usan para revisar si el usuario es humano y para prevenir los ataques de los crackers.
El componente Zend\Escaper permite quitar las etiquetas HTML indeseadas de los datos enviados a las páginas del sitio.
El soporte criptográfico permite guardar datos sensibles (ejemplo, credenciales) codificadas con algoritmos criptográficos fuertes que son difíciles de romper.