Buffer overflow: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m link
Alfiobot (discussione | contributi)
m accenti/spazi/punteggiatura/intestazioni/links
Riga 2:
 
Un caso del genere si può verificare quando il programma non controlla in anticipo la lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un [[buffer]] di lunghezza prestabilita, confidando che l'utente (o il mittente) non immetta più dati di quanti esso ne possa contenere.
Questo capitava perche'perché i sistemi operativi sono scritti solitamente in C o [[C plus plus|C++]], linguaggio non [[type safe]] che non fa controlli sulle dimensioni degli array.
Quando quindi, per errore o per calcolo, vengono inviati più dati della capienza del buffer destinato a contenerli, i dati ''extra'' vanno a sovrascrivere le variabili interne del programma, o il suo stesso stack. Conoscendo molto bene il programma in questione e il tipo di macchina su cui gira, si può precalcolare una serie di dati ''malevoli'' che inviata per provocare un buffer overflow consenta ad un malintenzionato di prendere il controllo del programma, e tramite questo dell'intero computer.