Un'app genera un PDF basato sui dati inseriti dall'utente nei campi di testo. Copia e incolla gli utenti possono inavvertitamente finire incollando "tag" nel campo. Ad esempio -
<[email protected]>
Il plug-in del generatore PDF non piace e si arresta in modo anomalo generando un'eccezione. Il venditore di App dice che "l'escape deve essere eseguito sul lato del plugin" poiché tutti i loro strumenti / plugin sono simili - escape per sql injection, cross site ecc. Il fornitore di plug-in dice che il venditore di App deve sfuggire ai tag.
I miei pensieri iniziali sono che questo non è sufficiente per un errore catastrofico che il plug-in genera. Mi sarebbe piaciuto avere un PDF ancora generato ma con un messaggio "Qualcosa è andato storto, problema con ..." o semplicemente ignorare il tag sconosciuto e mostrarlo come è nel PDF (l'ho visto prima in un'app business ). Ma non sono sicuro da che parte cada questa bella gestione degli errori.
In termini di progettazione software, app vs plug-in, da che parte è responsabile oggettivamente in questo caso?
L'app prende i dati dal database (originariamente inserito dall'utente) e prepara una stringa HTML di base per la conversione, ad esempio in un'azione del controller dell'app:
$html = "<html>...<p>$userNotes</p>...</html>";
return Response($this->plugin->htmlToPDF($html));