Format string attack: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ercaran (discussione | contributi)
ABBOZZO sistemato italiano e aggiunto template abbozzo
Ercaran (discussione | contributi)
Riga 4:
 
== Funzionamento ==
Se si passa a una funzione che stampa una stringa a schermo (un esempio classico è la funzione [[printf]] del [[C (linguaggio)|linguaggio C]]) una stringa che in realtà contiene una serie di parametri di specifica dell'input (tipicamente si usano identificatori di formato ''%s'' e ''%x'' per esaminare il contenuto della memoria e ''%n'' per sovrascrivere parti della memoria, in particolare dello [[stack]]) si permette l'avvio di un attacco di tipo [[stack overflow]] e ''return to libc''. Per proteggersi da questo attacco, quando si vuole stampare una stringa ''s'' usando la printf()'' o una qualsiasi funzione C che accetti un numero illimitato di identificatori di formato, bisogna scrivere la funzione
 
printf("%s",s)
Riga 13:
 
in quanto in questo modo l'input dell'utente non viene validato. La stringa StringPointer potrebbe contenere una serie di identificatori di formato. Questo tipo di attacco, comunque, diventa sempre più difficile grazie alla diffusione di una maggiore consapevolezza della necessità di gestire i rischi associati alla programmazione e alla conseguente diffusione di tecniche di programmazione sicura.
 
 
== Collegamenti esterni ==