Funzione binary-safe

Una funzione binary-safe è una funzione o un'operazione che può essere eseguita su un file binario senza modificare il contenuto del file. Ciò garantisce che il file non sia danneggiato o mutilato dalla funzione o dall'operazione.

I dati binari sono codificati come una stringa di uno e zero (bit), ma non sono formattati in alcun modo particolare. I bit sono semplicemente lì e non hanno alcun significato. La maggior parte dei programmi, al contrario, ha codici di formattazione che assegnano determinati significati a specifiche stringhe di bit. Quando un programma viene utilizzato nel tentativo di leggere un file binario, il file viene interpretato in base alle regole di quel programma. A meno che i codici di formattazione del programma di lettura non corrispondano ai codici di formattazione del programma in cui è stato scritto il file, il display non ha senso, oppure contiene un miscuglio di simboli apparentemente privi di significato oltre ai dati che sono stati privati ​​dei codici di formattazione.

Un'immagine come un file JPEG può essere aperta in un elaboratore di testi, ma l'immagine non viene visualizzata. Invece, viene visualizzato spazzatura. Qualsiasi tentativo di modificare e quindi salvare un file JPEG utilizzando un elaboratore di testi comporterà la modifica dei dati binari, in modo tale che il risultato non sia più leggibile dal programma previsto. Il file è, in effetti, danneggiato. La modifica di un file immagine JPEG utilizzando un elaboratore di testi è quindi un esempio di una funzione che non è sicura per i binari.

Problemi con la sicurezza binaria si verificano spesso quando i file binari vengono trasferiti su Internet. Ciò è particolarmente vero per i file di grandi dimensioni, che possono causare un sovraccarico della memoria, del buffer o della capacità di archiviazione in uno o più server. A volte, i file trasferiti sono soggetti a funzioni che eliminano i codici di formattazione o che interpretano in modo errato determinate stringhe binarie come codici di formattazione. Ad esempio, le parentesi angolari possono essere interpretate erroneamente come indicatori di tag HTML, oppure i tag desiderati possono andare persi nel trasferimento di un file HTML. Le virgolette in formato testo normale o ASCII potrebbero non essere lette in questo modo da un browser Web. Un editor HTML convertirà le virgolette (") in una stringa di caratteri per evitare questa confusione. Uno spazio aggiuntivo () in una pagina Web appare come una stringa di caratteri quando il codice sorgente HTML viene visualizzato in un editor di testo come Blocco note di Windows Al contrario, tali stringhe di caratteri vengono interpretate dai browser Web come virgolette e spazi, anche se l'autore del file non intendeva che fossero interpretate in questo modo.

I file binari possono essere protetti da modifiche indesiderate da parte dei programmi. Nella peggiore delle ipotesi, tale modifica può comportare la perdita permanente di dati a causa del danneggiamento dei file. I file sensibili devono sempre essere sottoposti a backup su supporti di sola lettura come un compact disc registrabile (CD-R), in modo che i dati originali possano essere recuperati in caso di modifiche indesiderate da una funzione che non è binary-safe. Quando si trasferiscono file binari a un sito Web utilizzando un programma FTP (File Transfer Protocol), è possibile utilizzare l'impostazione "binario" per impedire modifiche indesiderate del contenuto del file durante il processo di trasferimento.