October 14
Buffer vengono usati per contenere una certa quantità di dati temporaneamente, di solito per garantire che una fonte interrotta o lento non interrompe o rallentare il resto del sistema. Tuttavia, ci sono gravi implicazioni di sicurezza che accompagnano i buffer.
Un sovraccarico del buffer (o buffer overflow) si verifica quando un programma tenta di scrivere più informazioni in un buffer che il buffer è preparato a gestire. In alcune lingue, in particolare quelli derivati da C, piuttosto che gettare un errore a questo evento, il computer scrive l'intera quantità di dati. Ciò induce a sovrascrivere altre posizioni vicine nella memoria.
La maggior parte dei moderni sistemi operativi includono funzionalità per tentare di evitare pericolosi sovraccarichi del buffer.
Se si utilizza un linguaggio C-based, utilizzare parti sicure delle librerie standard C ++, quando possibile. Al tempo stesso, evitare di utilizzare le funzioni all'interno della libreria che sono noti per essere suscettibile di sovraccarichi del buffer.
In tutte le lingue, è importante verificare la sanità mentale dei dati in arrivo per assicurarsi che sia all'interno di aspettative di quello che dovrebbe essere quello di prevenire sovraccarichi del buffer e altri errori.
Una regola importante è che un'applicazione non dovrebbe mai fidare di tutti i dati in arrivo da fuori di sé.