请教 Blazor web app 服务器模式下的开发过程中的代码安全问题

929Free 436 信誉分
2025-02-25T10:05:11.3866667+00:00

非常感谢微软的工程师们在近段时间里对我发出的问答帖子进行积极回复, 非常感谢!

但是我现在还有以下疑问想请教下,如有冒犯还请包容.

疑问1: Blazor web app 框架 服务器 模式, 设计之初是 偏向于 个人开发 还是 多人协同开发?

疑问2: 如果是多人开发, 就涉及代码泄露和封装的问题.之前我发的 App.razor 组件 ImportMap 警告RZ10012 提示, 您还原了该问题,证实了该问题确实存在.您还回复到不建议您将默认的Components文件中的内容全部迁移到类库项目中, 您可以考虑将Pages中的迁移出去,这应该是最佳的实践方案。

我的理解:

Pages 文件夹下的各页面应该可以封装成 Razor 类库, App.razor 和 Routes.razor 就放在主程序中.

那这样一来,该主程序项目放到Git上进行共享开发时,岂不是团队里的成员都有一份最核心的源代码. (如何做代码安全呢?)

例如:

之前我发的帖子请教的授权认证,也放在 App.razor 组件中进行的, 团队里的成员只要把这部分代码注释掉,就绕过去了,要是团队里的成员离职了,那他手里的岂不是整个产品的源代码?最核心的代码并没有隐藏.所以我才将 App.razor 封装到 Razor 类库里,目的就是为了把 最核心的代码 封起来,主要是为了代码安全嘛.

Blazor
Blazor
一个免费的开源 Web 框架,使开发人员能够使用 Microsoft 开发的 C# 和 HTML 创建 Web 应用。
30 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Zhi Lv - MSFT 33,161 信誉分 Microsoft 外部员工
    2025-02-26T07:04:31.2+00:00

    你好 @929Free

    疑问1: Blazor web app 框架 服务器 模式, 设计之初是 偏向于 个人开发 还是 多人协同开发?

    Blazor Server 的设计既适用于个人开发也适用于多人协作开发。它的设计目标是提供类似 SPA(单页应用)的体验,同时保持 .NET 服务器端的强大能力。在团队协作开发中,通常会使用 Razor 组件库(RCL)和 分层架构 来进行模块化拆分,以便团队成员协同工作,而不是所有人都能访问完整的源代码。

    对于疑问2:代码安全和封装问题, 将 App.razor 和核心认证代码封装到 Razor 类库, 并不能真正保护代码安全,因为Razor 类库(RCL)仍然是开源的,团队成员可以轻松反编译 DLL 来查看代码。

    这里有几个建议,你可以考虑使用它们来防止代码泄露和恶意篡改:

    1. 将核心逻辑封装到独立的 API(后端服务),使用独立 API 认证,Blazor 只作为 UI。
    2. 将敏感配置使用Azure Key Vault等安全存储。
    3. 使用CI/CD流程集成代码混淆工具(如Dotfuscator)提高代码安全性。
    4. 使用 Git 权限和私有子模块,限制核心代码的访问。
    5. 和员工签署保密协议,做好代码著作权登记,做好离职代码审查流程、账号禁用流程。

    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    最好的问候

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。