Los diferentes lenguajes de programación tienen diferentes propiedades de seguridad, pero no me atrevería a decir que Java es "más seguro" que C #, por ejemplo.
Los idiomas pueden diferir, por ejemplo, en si son de tipo débil o de tipo fuerte. En un lenguaje mal escrito, puede comparar una cadena con un int y el intérprete se convierte en otro. Esto puede introducir algunos errores, por ejemplo, si intenta comparar el hash de contraseña 0e912893899
. Resulta que este es un número válido en notación científica y tiene un valor de 0. Así que en PHP, por ejemplo, 0e123
es igual a 0e456
.
Las implementaciones de lenguaje también pueden diferir en calidad. Por ejemplo, la función base_convert de PHP tiene una precisión limitada y es una bad idea para usarlo en un token secreto. Sin embargo, no hay nada que evite que PHP solucione esto, o que otra implementación de PHP lo haga correctamente.
Además, los idiomas pueden diferir en su gestión de memoria. En C, puede asignar 10 bytes de memoria y luego escribir 20 bytes en ella, lo cual es un problema de seguridad. Esto no es posible en la mayoría de los otros idiomas.