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

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

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

【问题讨论】:

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

标签: flutter firebase-hosting flutter-web


【解决方案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
    try{if(a[b]===s){r=a[b]=q
    r=a[b]=d()}else r=a[b]}finally{if(r===q)a[b]=null
    a[c]=function(){return this[b]}}return r}}function lazy(a,b,c,d){var s=a
    a[b]=s
    

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 这正是我所做的,我部署了发布版本,但如果我检查页面,它仍然会暴露代码。
      • @djalmafreestyler 可能会排除源地图文件(如果有)?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 2011-12-10
      • 2014-07-05
      相关资源
      最近更新 更多