mostrar html introduzido por utilizadores

Um post sobre isso:

When you have to display html from the user
do blog Code Insecurity

O problema claro é que refletir input dos utilizadores é meio caminho andado para permitir ataques de cross site scripting (XSS). Se o input é HTML, ainda pior. Um resumo:

Step 1: Explicitly define the set of allowed tags.
Step 2: For each tag defined above, explicitly define the set of allowable attributes.
Step 3: Define a set of regexes to test the input from the user against the defined tags and attributes.
Step 4: Remove anything that does not pass the regex test. (This is the sanitization part)
Step 5: Be diligent. (Just like always)