¿Algunos lenguajes de programación son más seguros que otros? [duplicar]

0

Voy a escribir un programa que almacene contraseñas y se preguntaba qué idioma sería bueno para esto. ¿Los idiomas realmente tienen una seguridad inherente? Las personas hablan como si lo hicieran, por ejemplo:

  

... Dominio y resistencia de Java en los últimos tiempos, incluido golpea a su   reputación de seguridad ...

y

  

... construido pensando en la seguridad, por lo que las características de seguridad son una de   Las ventajas de Java.

¿Algunos idiomas son mejores que otros para la seguridad? ¿Los idiomas que se ejecutan en una máquina virtual tienen una capa de protección (como Java, C #) en comparación con cosas como C / C ++? Estoy pensando en lo fácil que sería para otro programa leer el contenido de la memoria de otro proceso.

    
pregunta northerner 20.04.2017 - 12:18
fuente

1 respuesta

2

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.

    
respondido por el Sjoerd 20.04.2017 - 12:33
fuente

Lea otras preguntas en las etiquetas