PHP es considerado un lenguaje inseguro para desarrollar, no por las puertas traseras secretas instaladas por los desarrolladores de lenguajes PHP, sino porque inicialmente fue desarrollado sin la seguridad como una preocupación importante y comparado con otros lenguajes / marcos web, es difícil de desarrollar de forma segura en ella.
Por ejemplo, si desarrolla una aplicación web LAMP / LAPP (linux + apache + mysql / postgresql + PHP), debe codificar manualmente el saneamiento de entrada / salida para evitar la inyección de SQL / XSS / CSRF, asegúrese de que no haya las llamadas sutiles al código proporcionado por el usuario eval
(como en preg_replace
con un '/ e' que termina el argumento de expresión regular), manejan de manera segura las cargas de archivos, se aseguran de que las contraseñas de los usuarios estén bien ocultas (no en texto sin formato), las cookies de autenticación son indiscutibles , seguro (https) y solo http, etc.
La mayoría de los marcos web modernos simplifican muchos de estos problemas al hacer la mayoría de estas cosas de manera segura (o al principio hacerlo de forma insegura y luego obtener actualizaciones seguras).
El riesgo de que haya una puerta trasera secreta en un PHP de código abierto es pequeño; y el riesgo está presente en cada pieza de software (windows / linux / apache / nginx / IIS / postgresql / oracle) que utilice, tanto de código abierto como de código cerrado. Los de código abierto al menos tienen el beneficio que muchos ojos independientes lo miran todo el tiempo y usted podría examinarlo si lo desea.
También tenga en cuenta que en principio, incluso después de examinar completamente el código fuente y no encontrar puertas traseras y examinar completamente el código fuente de su compilador (no encontrar puertas traseras), si luego vuelve a compilar su compilador (bootstrap usando un compilador existente no confiable) y luego compile el código fuente seguro con su compilador "seguro" recién compilado, su código ejecutable aún podría tener puertas traseras desde el uso del compilador existente no confiable para compilar el nuevo compilador. Consulte las Reflexiones sobre la confianza en Kenia de Ken Thompson. (La forma en que esto se defiende en la práctica es mediante el uso de muchos compiladores independientes y oscuros de múltiples fuentes para compilar cualquier compilador nuevo y luego comparar la salida).