PÅ veldig
generelt basis så skal en alltid validere eller vaske inndataen, så den dataen som blir sendt videre i applikasjonen kun innholder det som forventes.
Når dataen skal sendes til et subsystem(database, nettleser, e-post, andre programmer) så skal dataen, som nå er blitt en utdata, escapes.
Og her er det viktig at riktig medtode brukes. Eksempel vis, så skal ikke data som skal til databasen bli escapet med htmlentities, og utdata som skal til nettlesern skal ikke escapes av en database funksjon.
Poenget med å escape er å uskadeligjøre meta-tegn, altså tegn med en betydning for subsystemet det blir sendt til.
@Atle: så ja, data som lagres i databaser tar ikke skade av å HTML/javascript, så lenge meta-tegnene til databasen er escapet i $stringen.
Men det er også viktig at når denne dataen blir hentet utigjen for å vises på en side, at den blir escapet for html... om det ikke er meningen at HTMLen skal vises.
Så kan en jo også da det lengre, noe HTML skal være lov, annet ikke