如何保护部署到 Firebase Hosting 的 Flutter Web 的源代码?

Posted

技术标签:

【中文标题】如何保护部署到 Firebase Hosting 的 Flutter Web 的源代码?【英文标题】:How to protect the source code of Flutter Web deployed to Firebase Hosting? 【发布时间】:2021-01-12 23:00:36 【问题描述】:

我创建了一个Flutter Website 并部署到 Firebase 托管,如果我在 Google Chrome 上检查该页面,在“源”选项卡中可能会获得该网站的源代码。

有没有办法保护源代码,而不是像这样暴露整个代码?

【问题讨论】:

您正在进入调试模式,对吧?尝试在发布模式下运行,你会注意到别的东西。 不,部署的版本是发布版而不是调试版。 【参考方案1】:

您似乎正在托管整个应用程序目录。 您需要使用“flutter build web”来构建您的网站。 然后'firebase deploy' build/web 目录。 您需要在项目路径中的 firebase.json 中指定:


  "hosting": 
    "site": "YOUR_WEBSITE_NAME",
    "public": "build/web/",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  

【讨论】:

【参考方案2】:

如果您查看source file,您会看到它已编译/缩小。

// snippet
var r
var q=d
tryif(a[b]===s)r=a[b]=q
r=a[b]=d()else r=a[b]finallyif(r===q)a[b]=null
a[c]=function()return this[b]return rfunction lazy(a,b,c,d)var s=a
a[b]=s

您看到的是sourcemaps,它显示了已编译/缩小代码的开发人员友好视图。我没有看到任何 options 用于关闭源映射。

要记住的是,您正在发布客户端应用程序。一旦代码在其他计算机上,您就无法阻止他们对其进行逆向工程。

【讨论】:

【参考方案3】:

如this page 中所述,您需要使用flutter build web 命令构建您的网络应用程序,然后部署您在./build/web 文件夹to Firebase 中找到的内容。

【讨论】:

这正是我所做的,我部署了发布版本,但如果我检查页面,它仍然会暴露代码。 @djalmafreestyler 可能会排除源地图文件(如果有)?

以上是关于如何保护部署到 Firebase Hosting 的 Flutter Web 的源代码?的主要内容,如果未能解决你的问题,请参考以下文章

.firebase/hosting 的目的是啥。 ALPHANUM.cache

Flutter Web App Firebase Hosting Setup 完成屏幕外观?

Firebase - 如何访问已部署的应用程序

Next.js Firebase Hosting 404 错误除了 index.html

Firebase Hosting(Angular 8 + Service Worker)没有在刷新时更新

如何从“/functions”以外的其他目录部署功能?