Wie andere bereits betont haben, ist Nr. 2 die richtige Antwort. Lassen Sie es "roh", bis Sie es brauchen, und entkommen Sie dann entsprechend.
Um näher darauf einzugehen (und ich werde die anderen Posts wiederholen/zusammenfassen), lassen Sie uns Szenario 1 auf sein logisches Extrem bringen.
Was passiert, wenn jemand " ' OR 1=1 <other SQL injection> --
eingibt ". Vielleicht entscheiden Sie sich jetzt dafür, dass Sie für SQL kodieren sollten, weil Sie SQL verwenden (vielleicht, weil Sie keine parametrisierten Anweisungen verwendet haben). Also müssen Sie jetzt SQL- und HTML-Kodierung mischen (oder sich dafür entscheiden).
Plötzlich möchte Ihr Chef auch eine XML-Ausgabe. Um Ihr Muster konsistent zu halten, müssen Sie auch dafür codieren.
Nächste CSV - oh nein! Was ist, wenn der Text Anführungszeichen und Kommas enthält? Noch mehr Flucht!
Hey - wie wäre es mit einer netten interaktiven AJAX-Oberfläche? Jetzt möchten Sie wahrscheinlich damit beginnen, JSON an den Browser zurückzusenden, also müssen jetzt alle {, [ usw. berücksichtigt werden. HILFE!!
Speichern Sie also die Daten wie angegeben (natürlich vorbehaltlich der Domänenbeschränkungen) und codieren Sie sie entsprechend Ihrer Ausgabe zu dem Zeitpunkt, an dem Sie sie benötigen . Ihre Ausgabe stimmt nicht mit Ihren Daten überein.
Ich hoffe, diese Antwort ist nicht zu bevormundend. Vielen Dank an die anderen Befragten.