You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Astro SSR场景下是否需保留DOMPurify的sanitize函数?

必须保留XSS防护,不能直接移除DOMPurify的sanitize功能
  • 别觉得只有少数人能输入就安全,哪怕是内部可信人员,也可能误粘贴带恶意脚本的内容,或者账号被盗用。一旦未净化的HTML内容展示给所有访客,瞬间就会引发XSS攻击,风险完全不可控。
  • Astro SSR下没法直接用客户端版DOMPurify?换服务端处理就行:
    • 方案一:在内容入库前就用后端(比如Node.js环境)的DOMPurify做净化,前端渲染时直接用处理后的内容,不用再在页面里处理。
    • 方案二:在Astro的SSR页面组件里,搭配jsdom在服务端完成净化,示例代码:
      ---
      import DOMPurify from 'dompurify';
      import { JSDOM } from 'jsdom';
      
      const dom = new JSDOM('');
      const purify = DOMPurify(dom.window);
      const sanitizedDesc = purify.sanitize(description);
      ---
      
      <div class='mb-6 px-4' set:html={sanitizedDesc} />
      
  • 绝对不能直接去掉sanitize就渲染原始HTML,哪怕只有一次疏漏,所有访客都会暴露在攻击风险里,这是网页安全的底线。

内容的提问来源于stack exchange,提问作者Yush Shrestha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:19:52