Niet zozeer of uitsluitend uit voorzorg, maar meer om je werkwijze te simplificeren en te standaardiseren. Het is gewoon veel makkelijker om alles gewoon consequent te escapen, tenzij je een speciale (en gedocumenteerde) reden hebt om dit niet te doen.
Zoals eerder aangegeven, als je dit niet overal doet dan kan elke keer de vraag rijzen of je bewust niet ge-escaped hebt of dit per ongeluk vergeten bent. Je zou hier dan elke keer over na moeten denken en jouw code moeten herinspecteren. Ain't nobody got time for that.
Dit creëert ook een groter bewustzijn. Eigenlijk zou je je te allen tijde moeten afvragen als je met DATA uit een externe bron werkt of deze ge-escaped moet worden. Een externe bron kan ook jouw database zijn, deze bevat namelijk (indirect) ook USER DATA. Een goede instelling is om deze nooit te vertrouwen. Zelfs niet als deze in je database zit.
Het is echter niet de bedoeling dat je op voorhand alles voor een bepaalde context escaped waar je deze DATA niet direct voor gebruikt. Zo is het niet verstandig om bijvoorbeeld htmlentities() over tekst heen te gooien als deze de database in gaat omdat je die op den duur mogelijk gebruikt/weergeeft in een HTML-context. Vermijd het escapen van input, het (bredere) devies is nog steeds
filter input, escape output
Met de nadruk op output, oftewel, als je data in een bepaalde context gebruikt, dan is het zaak om te escapen. Je zou je in ieder geval altijd moeten afvragen of er ge-escaped moet worden en dit dan ook altijd doen, en zoniet, zou je een aantekening moeten maken die aangeeft waarom dat daar niet nodig of gewenst is.
Natuurlijk kun je de behandeling van DATA wel wat versoepelen op het moment dat geregistreerde gebruikers deze invoeren omdat je dan al iets beter weet wie deze personen zijn, maar dit zou nooit mogen resulteren in het zomaar accepteren van wat voor data dan ook of het blindelings verwerken hiervan, dit zou nog steeds aan alle (veiligheids)regels moeten voldoen. Je zult die data nog altijd valideren (filter input) en escapen in queries (escape output).