SanitizeHtml.js 605 B

12345678910111213141516
  1. const BLOCKED_TAG_PATTERN = /<\/?(script|style|iframe|object|embed|link|meta|base|form|input|button|textarea|select)[^>]*>/gi
  2. const EVENT_HANDLER_PATTERN = /\son[a-z]+\s*=\s*(['"]).*?\1/gi
  3. const JS_PROTOCOL_PATTERN = /\s(href|src)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi
  4. function sanitizeHtml(input) {
  5. if (input === null || input === undefined) return ''
  6. let html = String(input)
  7. html = html.replace(BLOCKED_TAG_PATTERN, '')
  8. html = html.replace(EVENT_HANDLER_PATTERN, '')
  9. html = html.replace(JS_PROTOCOL_PATTERN, ' $1="#"')
  10. return html.trim()
  11. }
  12. module.exports = { sanitizeHtml }