Tengo un formulario que toma las entradas del usuario y las registra en una tabla. Mi formulario sanea la entrada del usuario al eliminar ciertos caracteres (mencionados a continuación). Puedo exportar un CSV de la tabla, que genera las celdas tal como están.
La forma correcta de evitar una inyección de CSV es prefijar una comilla simple al inicio de una celda que se parece a una fórmula, es decir, las que comienzan con =
, +
, -
, @
o |
.
Sin embargo, si la entrada en su lugar escapa caracteres como ;
, !
y |
al eliminarlos antes de que se registren en la tabla para la exportación de CSV, ¿será suficiente por sí solo?
Hasta ahora, la única 'inyección' que he logrado hacer es '= SUM (1 + 1)', debido a que es imposible usar cargas populares como @SUM(1+1)*cmd|' /C calc'!A0
o DDE ("cmd";"/C calc";"!A0")A0
, ya que los caracteres clave se ponen eliminado.