Come serializzare un array e deserializzare di nuovo da una stringa? Ho provato il seguente codice, ma in realtà non restituisce l'array originale di interi ma fa l'array di stringhe.Come serializzare un array e deserializzare indietro
x = [1,2,3].join(',') # maybe this is not the correct way to serialize to string?
=> '1,2,3'
x = x.split(',')
=> [ '1', '2', '3' ]
C'è un modo per farlo tornare a numeri interi senza avere la .collect{ |x| x.to_i }
?
Cosa c'è di pericoloso nel caricamento dei dati marshallati? Stai forse pensando a "eval"? Marshal è l'unico modo per garantire la codifica originale. – pguardiario
Per citare i documenti ruby per il maresciallo "Per impostazione, il carico può deserializzare quasi tutte le classi caricate nel processo Ruby. In molti casi ciò può portare all'esecuzione di codice remoto se i dati Marshal vengono caricati da una fonte non attendibile." –
Mi chiedo se è possibile fornire un esempio specifico in cui, nel caso dell'OP, ciò potrebbe accadere. Non penso sia davvero possibile. – pguardiario