SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Miguel Angel Alvarez
PHP: el enfoque correcto
@midesweb
@EscuelaIT
Qué veremos hoy
▪ Índice
o Qué es PHP
• Iniciarse con PHP
o Evolución de PHP
o Por qué PHP tiene "mala fama"
• Actualización
• Seguridad
• Malas prácticas
o PHP: el enfoque correcto
Qué es PHP
Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
Qué es PHP
Backend / frontend
Front-end: El desarrollo con los
lenguajes que se ejecutan del lado
del cliente
Back-end: El desarrollo con los
lenguajes que se ejecutan del lado
del servidor.
Qué es PHP
Ventajas de PHP
● Es sencillo de usar y aprender
● Amplio soporte en proveedores de alojamiento
● Software popular
○ WordPress
○ Woocommerce
○ Prestashop
○ Magento
○ Joomla!
○ Drupal
○ Laravel
○ Symfony
● Gran comunidad
Qué es PHP
Ventajas de PHP
● Es sencillo de usar y aprender
● Amplio soporte
● Software popular
○ WordPress
○ Woocommerce
○ Prestashop
○ Magento
○ Joomla!
○ Drupal
○ Laravel
○ Symfony
● Gran comunidad
https://w3techs.com/technologies/details/pl-php/all/all
Primeros pasos con PHP
Para trabajar con PHP necesitamos instalar en local una serie de programas:
- Un servidor web (Apache / Nginx)
- El módulo de soporte de PHP
- Generalmente una base de datos (MySQL / MariaDB)
Instalar PHP en local
Mamp
Laragon
https://www.apachefriends.org/es/index.html
https://laragon.org/
https://www.mamp.info/en/
Primeros pasos con PHP
Interfaz de Xampp
http://localhost
Evolución de PHP
Evolución de PHP
- 1994: "Personal Home Page/Forms Interpreter" or PHP/FI.
- 1998: PHP 3 "PHP: Hypertext Preprocessor"
- 2000: PHP 4 *Powered Zend Engine (sin soporte desde 2008)
- 2004: PHP 5 alcanza su madurez. Soporte "serio" para orientación a objetos, PDO.
Soporte oficial finalizó en diciembre 2018
- 2015: PHP 7 Aumento considerable del rendimiento. Manejo de tipos.
Versiones de PHP
Evolución de PHP
Rendimiento de PHP
https://docs.observium.org/tuning/
"Mala fama"
"Mala fama"
Lenguaje primitivo
Es cierto que las primeras versiones de PHP no tenían muchas de las características
que se supone deseables en lenguajes avanzados.
- En PHP 5 se consiguió una orientación a objetos a la altura de lenguajes de
primer nivel.
- Herencia, traits, interfaces
- Autoload de clases
- Type hinting
- Namespaces…
- Las mejoras continuaron en PHP 7
"Mala fama"
Rendimiento
Se dice que PHP es un lenguaje más lento que otras alternativas para backend.
- En PHP 7 esta situación cambia y se pone a la altura de otros lenguajes
Cada lenguaje es bueno en su parcela
"Mala fama"
¿Algún motivo real?
Si PHP es un lenguaje avanzado y capaz de ofrecer un rendimiento apropiado para
la mayoría de las aplicaciones web.
¿Por qué continúa teniendo mala fama?
"Mala fama"
Malas prácticas
PHP es un lenguaje donde es fácil caer en malas prácticas.
- Los primeros pasos al aprender a programar en PHP consisten en colocar el código
PHP embebido en el código HTML.
- No es fácil encontrar una arquitectura de aplicación clara
- Dependencia con la base de datos y un API de funciones demasiado permisivo
- Configuraciones predeterminadas de PHP en versiones antiguas dan pie a posibles
brechas de seguridad
"Mala fama"
Comunidad
Los problemas que actualmente podemos achacar a PHP en realidad son debidos a la
comunidad de desarrolladores (una parte), que no son capaces de hacer un buen uso del
lenguaje.
- Código spaghetti
- Aplicaciones poco mantenibles
- Baja escalabilidad
- Compleja portabilidad
- Aplicaciones inseguras por programación deficiente
- Aplicaciones inseguras por no actualizar los sistemas
"Mala fama"
Seguridad del software libre
PHP y las aplicaciones de software libre en general deben ser actualizadas
constantemente, para evitar el uso de versiones con vulnerabilidades conocidas.
- Actualizar a PHP 7
- Actualizar Linux, Apache, Nginx...
- Actualizar las librerías que se usan(Composer)
- Actualizar los CMS / Frameworks
- WordPress
- Joomla!
- ...
Enfoque correcto
Enfoque correcto
Actualizar a PHP 7
Se hace necesario actualizar a PHP 7.
- Mejora del rendimiento
- Seguridad!
El trabajo para migrar desde PHP 5 a PHP 7 consiste en elimina funcionalidades
marcadas como obsoletas. Estas funcionalidades venían siendo advertidas ya en
versiones de PHP 5 avanzadas.
1) Cambiar la versión de PHP en el servidor de desarrollo
2) Realizar los cambios oportunos https://www.php.net/manual/es/migration70.php
3) Subir al servidor
Enfoque correcto
Actualizar a PHP 7 - MySQL
El cambio más relevante es el fin de soporte de la extensión ext/mysql en PHP 7.0
Se debe migrar a la extensión ext/mysqli o PDO.
Elegir un API para MySQL:
https://www.php.net/manual/es/mysqlinfo.api.choosing.php
Aprovechar las sentencias preparadas
https://php.net/manual/es/mysqli.quickstart.prepared-statements.php
Enfoque correcto
Actualizar a PHP 7: Rector
Rector es un analizador de código que permite alterar automáticamente,
transformándolo según nuestras necesidades: https://github.com/rectorphp/rector
composer require rector/rector --dev (https://getcomposer.org)
Una vez instalado podemos ver los distintos niveles de trabajo con:
vendor/bin/rector levels
Podemos cambiar las extensiones de MySQL a MySQLi mediante el comando:
* Usa Git para revisar las versiones del código
vendor/bin/rector process public --level mysql-to-mysqli
Enfoque correcto
PHP The Right Way
Es un completo sitio dedicado a las buenas prácticas en PHP. Podemos obtener muchas
recomendaciones y guías para desarrollar proyectos de mayor calidad.
https://phptherightway.com/
Recomendaciones para estudio
- Composer & Packagist
- Namespaces
- PDO / Sentencias preparadas en MySQLi
- Sistemas de templates
- Seguridad
- Virtualización
Enfoque correcto
Frameworks
Por supuesto, el uso de frameworks PHP nos ofrece una base de código robusta, segura
y escalable para el desarrollo de aplicaciones web.
Laravel
https://laravel.com/
Symfony
https://symfony.com/
Gracias
Miguel Angel Alvarez
insight@insightcreativos.com
649 76 76 31
@midesweb

Weitere ähnliche Inhalte

Was ist angesagt?

Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo webfany concepcion
 
Desarrollo y Programacion WEB
Desarrollo y Programacion WEBDesarrollo y Programacion WEB
Desarrollo y Programacion WEBGenesis Jurado
 
Presentación1
Presentación1Presentación1
Presentación100leidy
 
Mapa Conceptual de los Servidor Apache y IIS.
Mapa Conceptual de los Servidor Apache y IIS.Mapa Conceptual de los Servidor Apache y IIS.
Mapa Conceptual de los Servidor Apache y IIS.Heysel Ramirez
 
plataformas de desarrollo
plataformas de desarrolloplataformas de desarrollo
plataformas de desarrolloosvaldo molina
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xjachavesnaranjo
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDBArsys
 
Servidor apache zavaleta mata rene
Servidor apache zavaleta mata reneServidor apache zavaleta mata rene
Servidor apache zavaleta mata renerenezavaletamata
 
Typo3: El CMS que vino del frío
Typo3: El CMS que vino del fríoTypo3: El CMS que vino del frío
Typo3: El CMS que vino del fríoOpenExpoES
 
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]Dulce trejo
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...OpenExpoES
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpdruna
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudArsys
 
Mapa conceptual de los servidores Apache y IIS
Mapa conceptual de los servidores Apache y IISMapa conceptual de los servidores Apache y IIS
Mapa conceptual de los servidores Apache y IISjoanarusconi
 
Webinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsWebinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsArsys
 
Desarrollo de aplicaciones web Oswald Coronado
Desarrollo de aplicaciones web Oswald CoronadoDesarrollo de aplicaciones web Oswald Coronado
Desarrollo de aplicaciones web Oswald Coronadooswaldcoronadomagdaleno
 

Was ist angesagt? (20)

Tipos de plataformas web
Tipos de plataformas webTipos de plataformas web
Tipos de plataformas web
 
Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo web
 
Desarrollo y Programacion WEB
Desarrollo y Programacion WEBDesarrollo y Programacion WEB
Desarrollo y Programacion WEB
 
Presentación1
Presentación1Presentación1
Presentación1
 
Cuadro comparativo 2
Cuadro comparativo 2Cuadro comparativo 2
Cuadro comparativo 2
 
Mapa Conceptual de los Servidor Apache y IIS.
Mapa Conceptual de los Servidor Apache y IIS.Mapa Conceptual de los Servidor Apache y IIS.
Mapa Conceptual de los Servidor Apache y IIS.
 
plataformas de desarrollo
plataformas de desarrolloplataformas de desarrollo
plataformas de desarrollo
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.x
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 
Servidor apache zavaleta mata rene
Servidor apache zavaleta mata reneServidor apache zavaleta mata rene
Servidor apache zavaleta mata rene
 
Typo3: El CMS que vino del frío
Typo3: El CMS que vino del fríoTypo3: El CMS que vino del frío
Typo3: El CMS que vino del frío
 
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpd
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
 
Mapa conceptual de los servidores Apache y IIS
Mapa conceptual de los servidores Apache y IISMapa conceptual de los servidores Apache y IIS
Mapa conceptual de los servidores Apache y IIS
 
Webinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsWebinar: Introducción a VUE.js
Webinar: Introducción a VUE.js
 
Desarrollo de aplicaciones web Oswald Coronado
Desarrollo de aplicaciones web Oswald CoronadoDesarrollo de aplicaciones web Oswald Coronado
Desarrollo de aplicaciones web Oswald Coronado
 
Integrantes
IntegrantesIntegrantes
Integrantes
 

Ähnlich wie PHP 7, seguridad y buenas prácticas

Ähnlich wie PHP 7, seguridad y buenas prácticas (20)

Apache
ApacheApache
Apache
 
Practica09
Practica09Practica09
Practica09
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a php
 
Trabajo especial (php)
Trabajo especial (php)Trabajo especial (php)
Trabajo especial (php)
 
Trabajo especial copy
Trabajo especial   copyTrabajo especial   copy
Trabajo especial copy
 
15. servidor php
15. servidor php15. servidor php
15. servidor php
 
Fundamentos de programación con PHP.pdf
Fundamentos de programación con PHP.pdfFundamentos de programación con PHP.pdf
Fundamentos de programación con PHP.pdf
 
Fundamentos de programación con PHP.pdf
Fundamentos de programación con PHP.pdfFundamentos de programación con PHP.pdf
Fundamentos de programación con PHP.pdf
 
Tema1
Tema1Tema1
Tema1
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Manual completo-php-5
Manual completo-php-5Manual completo-php-5
Manual completo-php-5
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sql
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Manual De Php
Manual De PhpManual De Php
Manual De Php
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 

Mehr von Arsys

Whitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data centerWhitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data centerArsys
 
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...Arsys
 
Contenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | WhitepaperContenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | WhitepaperArsys
 
Cómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organizaciónCómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organizaciónArsys
 
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?Arsys
 
Webinar - Primeros pasos con plesk
Webinar - Primeros pasos con pleskWebinar - Primeros pasos con plesk
Webinar - Primeros pasos con pleskArsys
 
Webinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda OnlineWebinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda OnlineArsys
 
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?Arsys
 
Whitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresaWhitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresaArsys
 
Whitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud ComputingWhitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud ComputingArsys
 
Webinar – Introducción a Google Analytics
Webinar – Introducción a Google AnalyticsWebinar – Introducción a Google Analytics
Webinar – Introducción a Google AnalyticsArsys
 
Guia automatizar herramientas-grc
Guia automatizar herramientas-grcGuia automatizar herramientas-grc
Guia automatizar herramientas-grcArsys
 
Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress Arsys
 
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosdWhitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosdArsys
 
La conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: PunycodeLa conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: PunycodeArsys
 
Cómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivoCómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivoArsys
 
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoWhitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoArsys
 
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSWebinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSArsys
 
Webinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicadoWebinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicadoArsys
 
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...Arsys
 

Mehr von Arsys (20)

Whitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data centerWhitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data center
 
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
 
Contenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | WhitepaperContenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | Whitepaper
 
Cómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organizaciónCómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organización
 
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
 
Webinar - Primeros pasos con plesk
Webinar - Primeros pasos con pleskWebinar - Primeros pasos con plesk
Webinar - Primeros pasos con plesk
 
Webinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda OnlineWebinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda Online
 
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
 
Whitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresaWhitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresa
 
Whitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud ComputingWhitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud Computing
 
Webinar – Introducción a Google Analytics
Webinar – Introducción a Google AnalyticsWebinar – Introducción a Google Analytics
Webinar – Introducción a Google Analytics
 
Guia automatizar herramientas-grc
Guia automatizar herramientas-grcGuia automatizar herramientas-grc
Guia automatizar herramientas-grc
 
Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress
 
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosdWhitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
 
La conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: PunycodeLa conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: Punycode
 
Cómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivoCómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivo
 
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoWhitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
 
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSWebinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
 
Webinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicadoWebinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicado
 
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
 

Kürzlich hochgeladen

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para dRodrigoAveranga2
 

Kürzlich hochgeladen (6)

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para d
 

PHP 7, seguridad y buenas prácticas

  • 1. Miguel Angel Alvarez PHP: el enfoque correcto @midesweb @EscuelaIT
  • 2. Qué veremos hoy ▪ Índice o Qué es PHP • Iniciarse con PHP o Evolución de PHP o Por qué PHP tiene "mala fama" • Actualización • Seguridad • Malas prácticas o PHP: el enfoque correcto
  • 4. Qué es PHP PHP es un lenguaje de programación específico para la realización de páginas y aplicaciones web, del lado del servidor. Lenguaje de programación web del lado del servidor https://arsys.es
  • 5. Qué es PHP PHP es un lenguaje de programación específico para la realización de páginas y aplicaciones web, del lado del servidor. Lenguaje de programación web del lado del servidor https://arsys.es
  • 6. Qué es PHP PHP es un lenguaje de programación específico para la realización de páginas y aplicaciones web, del lado del servidor. Lenguaje de programación web del lado del servidor https://arsys.es
  • 7. Qué es PHP Backend / frontend Front-end: El desarrollo con los lenguajes que se ejecutan del lado del cliente Back-end: El desarrollo con los lenguajes que se ejecutan del lado del servidor.
  • 8. Qué es PHP Ventajas de PHP ● Es sencillo de usar y aprender ● Amplio soporte en proveedores de alojamiento ● Software popular ○ WordPress ○ Woocommerce ○ Prestashop ○ Magento ○ Joomla! ○ Drupal ○ Laravel ○ Symfony ● Gran comunidad
  • 9. Qué es PHP Ventajas de PHP ● Es sencillo de usar y aprender ● Amplio soporte ● Software popular ○ WordPress ○ Woocommerce ○ Prestashop ○ Magento ○ Joomla! ○ Drupal ○ Laravel ○ Symfony ● Gran comunidad https://w3techs.com/technologies/details/pl-php/all/all
  • 10. Primeros pasos con PHP Para trabajar con PHP necesitamos instalar en local una serie de programas: - Un servidor web (Apache / Nginx) - El módulo de soporte de PHP - Generalmente una base de datos (MySQL / MariaDB) Instalar PHP en local Mamp Laragon https://www.apachefriends.org/es/index.html https://laragon.org/ https://www.mamp.info/en/
  • 11. Primeros pasos con PHP Interfaz de Xampp http://localhost
  • 13. Evolución de PHP - 1994: "Personal Home Page/Forms Interpreter" or PHP/FI. - 1998: PHP 3 "PHP: Hypertext Preprocessor" - 2000: PHP 4 *Powered Zend Engine (sin soporte desde 2008) - 2004: PHP 5 alcanza su madurez. Soporte "serio" para orientación a objetos, PDO. Soporte oficial finalizó en diciembre 2018 - 2015: PHP 7 Aumento considerable del rendimiento. Manejo de tipos. Versiones de PHP
  • 14. Evolución de PHP Rendimiento de PHP https://docs.observium.org/tuning/
  • 16. "Mala fama" Lenguaje primitivo Es cierto que las primeras versiones de PHP no tenían muchas de las características que se supone deseables en lenguajes avanzados. - En PHP 5 se consiguió una orientación a objetos a la altura de lenguajes de primer nivel. - Herencia, traits, interfaces - Autoload de clases - Type hinting - Namespaces… - Las mejoras continuaron en PHP 7
  • 17. "Mala fama" Rendimiento Se dice que PHP es un lenguaje más lento que otras alternativas para backend. - En PHP 7 esta situación cambia y se pone a la altura de otros lenguajes Cada lenguaje es bueno en su parcela
  • 18. "Mala fama" ¿Algún motivo real? Si PHP es un lenguaje avanzado y capaz de ofrecer un rendimiento apropiado para la mayoría de las aplicaciones web. ¿Por qué continúa teniendo mala fama?
  • 19. "Mala fama" Malas prácticas PHP es un lenguaje donde es fácil caer en malas prácticas. - Los primeros pasos al aprender a programar en PHP consisten en colocar el código PHP embebido en el código HTML. - No es fácil encontrar una arquitectura de aplicación clara - Dependencia con la base de datos y un API de funciones demasiado permisivo - Configuraciones predeterminadas de PHP en versiones antiguas dan pie a posibles brechas de seguridad
  • 20. "Mala fama" Comunidad Los problemas que actualmente podemos achacar a PHP en realidad son debidos a la comunidad de desarrolladores (una parte), que no son capaces de hacer un buen uso del lenguaje. - Código spaghetti - Aplicaciones poco mantenibles - Baja escalabilidad - Compleja portabilidad - Aplicaciones inseguras por programación deficiente - Aplicaciones inseguras por no actualizar los sistemas
  • 21. "Mala fama" Seguridad del software libre PHP y las aplicaciones de software libre en general deben ser actualizadas constantemente, para evitar el uso de versiones con vulnerabilidades conocidas. - Actualizar a PHP 7 - Actualizar Linux, Apache, Nginx... - Actualizar las librerías que se usan(Composer) - Actualizar los CMS / Frameworks - WordPress - Joomla! - ...
  • 23. Enfoque correcto Actualizar a PHP 7 Se hace necesario actualizar a PHP 7. - Mejora del rendimiento - Seguridad! El trabajo para migrar desde PHP 5 a PHP 7 consiste en elimina funcionalidades marcadas como obsoletas. Estas funcionalidades venían siendo advertidas ya en versiones de PHP 5 avanzadas. 1) Cambiar la versión de PHP en el servidor de desarrollo 2) Realizar los cambios oportunos https://www.php.net/manual/es/migration70.php 3) Subir al servidor
  • 24. Enfoque correcto Actualizar a PHP 7 - MySQL El cambio más relevante es el fin de soporte de la extensión ext/mysql en PHP 7.0 Se debe migrar a la extensión ext/mysqli o PDO. Elegir un API para MySQL: https://www.php.net/manual/es/mysqlinfo.api.choosing.php Aprovechar las sentencias preparadas https://php.net/manual/es/mysqli.quickstart.prepared-statements.php
  • 25. Enfoque correcto Actualizar a PHP 7: Rector Rector es un analizador de código que permite alterar automáticamente, transformándolo según nuestras necesidades: https://github.com/rectorphp/rector composer require rector/rector --dev (https://getcomposer.org) Una vez instalado podemos ver los distintos niveles de trabajo con: vendor/bin/rector levels Podemos cambiar las extensiones de MySQL a MySQLi mediante el comando: * Usa Git para revisar las versiones del código vendor/bin/rector process public --level mysql-to-mysqli
  • 26. Enfoque correcto PHP The Right Way Es un completo sitio dedicado a las buenas prácticas en PHP. Podemos obtener muchas recomendaciones y guías para desarrollar proyectos de mayor calidad. https://phptherightway.com/ Recomendaciones para estudio - Composer & Packagist - Namespaces - PDO / Sentencias preparadas en MySQLi - Sistemas de templates - Seguridad - Virtualización
  • 27. Enfoque correcto Frameworks Por supuesto, el uso de frameworks PHP nos ofrece una base de código robusta, segura y escalable para el desarrollo de aplicaciones web. Laravel https://laravel.com/ Symfony https://symfony.com/