I have a textarea and I want to support some simplest formatting for posted data (at least, whitespaces and line breaks).
How can I achieve this? If I will not escape the response and keep some html tags then it’ll be a great security hole. But I don’t see any other solution which will allow text formatting in browser.
So, I probably should filter user’s input. But how can I do this? Are there any ready to use solutions? I’m using JSF so are there any smart component which filters everything except html tags?
Use a HTML parser which supports HTML filtering against a whitelist like Jsoup. Here’s an extract of relevance from its site.
And then to display it with whitespace preserved, apply CSS
white-space: pre-wrap;on the HTML element where you’re displaying it.No all-in-one JSF component comes to mind.