如何保护部署到 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 完成屏幕外观?
Next.js Firebase Hosting 404 错误除了 index.html