Nuestro equipo está desarrollando una aplicación web en el espacio financiero usando PHP. La gran pregunta que surge primero siempre está relacionada con la seguridad. ¿Cuáles son los principales riesgos de seguridad asociados con PHP o lenguajes de script en general, en comparación con una aplicación escrita de Java más aceptada (en el espacio)?

No puedo hablar mucho de Java, ya que no soy un ingeniero de Java.

Como mucha gente dice, PHP es un lenguaje de programación fácil, pero esto también significa que es muy fácil crear código desordenado o ineficiente. Muchos desarrolladores de PHP usan sus propios estilos, razón por la cual los modelos como MVC (Model-View-Controller) se aplican en muchos entornos de trabajo para garantizar que el código sea viable para los desarrolladores actuales y futuros.

Además de lo que he mencionado anteriormente, aquí hay algunos otros problemas de seguridad que se pueden formar a partir de PHP:

  • El sistema interno y los registros financieros están en el mismo servidor / base de datos
  • El cifrado no se usa en absoluto, se puede decodificar fácilmente (MD5’ing una contraseña no lo corta en estos días)
  • Si usa sales, solo usar una sal significará que un hacker puede decodificar fácilmente las contraseñas al obtener la información. Los hashes sobre la marcha obtenidos externamente deben usarse para hacer que la información sea prácticamente imposible de obtener.
  • Entradas unidireccionales en la información (es decir, cifrar datos sobre otros datos)
  • La configuración a menudo no se realiza
  • Los archivos se almacenan localmente como .txt que se pueden ver si se encuentra la ruta correcta: gran vulnerabilidad
  • Los servidores de producción a veces se usan como servidores de desarrollo, lo que puede significar que el código PHP podría estar expuesto o que la información segura podría verse comprometida
  • El uso de un código de sesión que facilita a los piratas informáticos ingresar a la cuenta de una víctima después de obtener acceso al código de sesión (XSS Exploits)

Si alguien puede agregar a esta lista, o incluso refinarla, siéntase libre de hacerlo y con gusto aceptaré los cambios realizados.

Los riesgos de seguridad no tienen nada que ver con los lenguajes de programación, sino con la conciencia de los desarrolladores sobre los problemas de seguridad. Si es un desarrollador consciente de la seguridad, sus aplicaciones serán igualmente seguras en PHP, Java o cualquier otra cosa.

El lenguaje de programación no es el único factor a considerar. Todavía tiene la infraestructura del servidor, hardware, servidor web, base de datos. Por lo tanto, no puede comparar PHP, Java, ASP, Ruby y otros lenguajes cuando habla de seguridad. Al final del día. Incluso la aplicación / software mejor escrita puede comprometer si se implementó en una infraestructura no tan buena.