safeHtml.js 661 B

12345678910111213141516171819202122232425
  1. import DOMPurify from 'dompurify'
  2. /**
  3. * 净化 HTML 内容,防止 XSS
  4. * @param {string} dirty 原始 HTML
  5. * @returns {string} 安全 HTML
  6. */
  7. export function safeHtml(dirty) {
  8. if (dirty == null || dirty === '') {
  9. return ''
  10. }
  11. return DOMPurify.sanitize(String(dirty), {
  12. ALLOWED_TAGS: [
  13. 'a', 'b', 'br', 'div', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
  14. 'i', 'img', 'li', 'ol', 'p', 'span', 'strong', 'table', 'tbody',
  15. 'td', 'th', 'thead', 'tr', 'u', 'ul'
  16. ],
  17. ALLOWED_ATTR: [
  18. 'href', 'target', 'rel', 'src', 'alt', 'title', 'class', 'style',
  19. 'width', 'height', 'colspan', 'rowspan'
  20. ]
  21. })
  22. }
  23. export default safeHtml