Ho un modulo che accetta l'input dell'utente e li registra in una tabella. Il mio modulo sanifica l'input dell'utente eliminando determinati caratteri (indicati di seguito). Posso esportare un CSV della tabella, che emette le celle così com'è.
Il modo corretto per prevenire un'iniezione CSV è prefissare una virgoletta singola all'inizio di una cella che assomiglia a una formula, cioè quelli che iniziano con =
, +
, -
, @
o% % co_de.
Tuttavia, se l'input scappa caratteri come |
, ;
e !
eliminandoli prima che vengano registrati nella tabella per l'esportazione CSV, sarà sufficiente da solo?
Finora, l'unica 'iniezione' che sono riuscito a fare è '= SUM (1 + 1)', poiché è impossibile usare payload popolari come |
o @SUM(1+1)*cmd|' /C calc'!A0
, come i personaggi chiave diventano cancellato.