Alcuni linguaggi di programmazione sono più sicuri di altri? [duplicare]

0

Scriverò un programma che memorizza le password e mi chiedevo quale lingua sarebbe stata utile per questo. Le lingue hanno davvero una sicurezza intrinseca? Le persone parlano come se lo facessero, ad esempio:

...Java’s dominance and resiliency of late, including hits to its security reputation...

e

... built with security in mind, so security features are one of Java’s advantages.

Alcune lingue sono migliori di altre per sicurezza? Le lingue in esecuzione su una VM hanno un livello di protezione (come Java, C #) rispetto a cose come C / C ++? Sto pensando a quanto sarebbe facile per un altro programma leggere il contenuto della memoria di un altro processo.

    
posta northerner 20.04.2017 - 12:18
fonte

1 risposta

2

Diversi linguaggi di programmazione hanno proprietà di sicurezza diverse, ma non direi che Java sia "più sicuro" di C #, per esempio.

Le lingue possono ad esempio differire se sono tipizzate debolmente o strongmente tipizzate. In un linguaggio tipizzato debolmente, puoi confrontare una stringa con un int e l'interprete converte in un altro. Questo può introdurre alcuni errori, ad esempio se provi a confrontare la password hash 0e912893899 . Si scopre che questo è un numero valido in notazione scientifica e ha valore 0. Quindi, in PHP, ad esempio, 0e123 equivale a 0e456 .

Anche le implementazioni linguistiche possono differire in termini di qualità. Ad esempio, la funzione base_convert di PHP ha una precisione limitata ed è un cattiva idea per usarlo su un token segreto. Tuttavia, non c'è nulla che impedisca a PHP di risolvere questo problema, o da un'altra implementazione PHP per farlo correttamente.

Inoltre, le lingue possono essere diverse nella gestione della memoria. In C è possibile allocare 10 byte di memoria e quindi scrivere 20 byte, che è un problema di sicurezza. Questo non è possibile nella maggior parte delle altre lingue.

    
risposta data 20.04.2017 - 12:33
fonte

Leggi altre domande sui tag