注册
web

看了下昨日泄露的苹果 App Store 源码……

新闻


昨日苹果 App Store 前端源码泄露,因其生产环境忘记关闭 Sourcemap,被用户下载了源码,上传到 Github。


仓库地址:github.com/rxliuli/app…


目前已经 Fork 和 Star 超 5k:



如果你想要第一时间知道前端资讯,欢迎关注公众号:冴羽


用户如何抓取的源码?


用户 rxliuli 使用 Chrome 插件 Save All Resources 将代码下载了下来。


插件地址为:chromewebstore.google.com/detail/save…



下次你也可以打包下载源码了~


如何看待源码泄露?


其实前端源码泄露对业务本身并没有什么影响,因为前端代码无论是否压缩还是混淆,最终都需传输到浏览器才能运行,本身就具有 “暴露” 属性,SourceMap 只是让代码更易读,更容易调试。


尽管如此,依然不建议在生产环境开启 SourceMap,对普通用户无益,且存在轻微性能开销和源代码暴露的安全风险。


我大致看了下代码,并没有什么密钥之类的信息,所以干点坏事之类的就不用想了。真正有价值的核心代码比如推荐逻辑还是在服务端。


代码使用 Svelte?


我万万没想到,项目使用的是 Svelte。


Svelte 我自然是很熟的,毕竟我翻译过 Svelte 官网:svelte.yayujs.com/



还写了一本掘金小册《Svelte 开发指南》:s.juejin.cn/ds/QNzfZ4eq…



想一想,使用 Svelte 也在情理之中。


因为 Svelte 就非常适合处理这种页面相对简单、业务逻辑并不复杂的页面。


在实现上 ,与其说 Svelte 是框架,不如说 Svelte 是一个编译器。 它会在构建时就会将代码编译为高效的 JavaScript 代码,因此能够实现高性能的 Web 应用。


Svelte 的核心优势在于:



  • 轻量级:核心库只有 3 KB,非常适合开发轻量级项目
  • 高性能:构建时优化,而且不使用虚拟 DOM,减少了内存占用和开销,性能更高
  • 易上手:学习曲线小,入门门槛低,语法简洁易懂

简而言之,Svelte 非常适合构建轻量级 Web 项目,也是本人做个人项目的首选技术栈。


以后大家如果要做相对简单的项目,又有性能上的追求(比如 KPI),那就可以考虑使用 Svelte。


用它作为示例学 Svelte ?


我看了下代码,项目代码还是 Svelte 4,而 Svelte 已经到 5 了,Svelte 4 和 5 不论是底层架构还是基础语法都发生了很大的变化,其变化的剧烈程度类似于 Next.js 12 升 Next.js 13,所以想通过这个项目学习 Svelte 就不用想了,都是些过时的语法了,不如直接学 Svelte 5。


作者:冴羽
来源:juejin.cn/post/7569057572436607014

0 个评论

要回复文章请先登录注册