我正在寻找对用户提交的 HTML 执行严格(白名单)验证/过滤的最佳实践。
主要目的是过滤掉可能通过 Web 表单输入的 XSS 和类似的恶意软件。次要目的是限制非技术用户输入的 HTML 内容的破坏,例如通过具有 HTML 视图的 WYSIWYG 编辑器。
我正在考虑使用HTML Purifier,或者通过使用 HTML DOM 解析器来完成我自己的流程,例如 HTML(dirty)->DOM(dirty)->filter->DOM(clean)->HTML(clean)。
你能描述这些或任何更简单有效的策略的成功吗?有什么需要注意的陷阱吗?