We're having conflict with coworkers on whether we should htmlencode
user input and then save it to db
( vs saving it straight forward as it is)
I also found various answers which says that DB
should save the plain(!) input.
Why ? because DB should know that the user length is 1 in <
and not 4 in <
The html encoding should only be made when outputting.
but:
Having said that , I see that Stackoverflow is not following this rule.
When I save a question here at SO , which contains plain <
it does show (obviously) the <
in the preview pane. BUT when I submit the question : it submit the content as json with html encode !
Json.stringify is not doing html encode
So If I type in the input :
And submits :
I see (via fiddler) that it sends actually the html encode value :
Question :
As you see - i'm a bit confused. the common logic says that db should save whatever the user type 1:1.
The sanitization should be made at the output