【问题标题】:Node JS - How can I process UGC to prevent any attack/site vulnerability?Node JS - 如何处理 UGC 以防止任何攻击/站点漏洞?
【发布时间】:2021-06-30 08:31:49
【问题描述】:

我们正在开发 Node JS 应用程序中的一项新功能,用户可以在其中上传任何文档(pdf、excel、img 等),我们将对其进行处理以便将其展示给其他用户。流程——我的意思是获取它的文本、生成缩略图、计数页面等等。 在执行此操作时,我们需要考虑一个非常重要的问题 - 我们如何确保没有攻击者使用此功能来攻击我们的网站甚至我们的用户? 虽然 XSS 非常流行——我相信我们应该防止其他漏洞。

我确信这个主题是任何操纵 UGC 的网站/工具的重点, 但我找不到任何标准/备忘单/甚至是描述在操纵 UGC 时保护我的网站的过程的项目符号列表。

任何参考、链接、知识共享,甚至是另一种开发语言的示例都将不胜感激!

【问题讨论】:

    标签: node.js security ugc


    【解决方案1】:

    网络安全的范围很广,但你说得对,XSS 是最流行的,但它有几种类型:

    • Reflected XSS - 恶意脚本来自当前的 HTTP 请求。
    • Stored XSS - 恶意脚本来自网站的数据库。
    • 基于 DOM 的 XSS - 漏洞存在于客户端代码而非服务器端代码中

    在我看来,第三个(基于 Dom 的)对于您的应用来说是最实际的,因为人们可以上传一些将位于 IMG SRC 中的脚本,并且当用户加载此图像时 - 恶意脚本可能会窃取敏感信息Cookies/auth 令牌等数据。

    在这种情况下,最流行的保护只是在“处理过程”中对特殊符号进行消毒。清理是将 HTML 符号替换为 HTML 实体,例如:<< 等。 您可以手动创建一些正则表达式来执行此操作,但我宁愿建议使用类似的东西:dompurify 它有许多有用的功能,例如:

    • 支持 HTML、MathML 和 SVG
    • 支持常用的标签/属性白名单/黑名单和 URL 正则表达式白名单
    • 具有进一步清理某些常见类型的 HTML 模板元字符的特殊选项

    还有很多其他

    关于网络安全白名单和其他可能的漏洞。 请检查这些,我认为它们可能对您有用

    1. Web Security OWASP cheatsheet - 此资源包含一个非常详细的列表,其中包含所有可能的网络安全规则以及示例和解决方案

    2. OWASP XSS Filter cheatsheet - 最常见的 XSS 文档

    【讨论】:

    • 非常感谢!你的回答很有帮助,你让我对网络安全大开眼界!
    猜你喜欢
    • 2020-04-21
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2013-03-07
    • 2015-04-16
    相关资源
    最近更新 更多