Vue / Angular / React是否暴露?

Ale*_*lex -1 javascript reactjs vue.js angular

我在和一个人聊天,他说像Angular,Vue或React这样的框架有一个很大的缺点:除了API部分(与服务器上的数据库交互)之外,所有其他代码都可以从前端看到,因此任何人都可以窃取您的应用程序。

T.J*_*der 7

这是编写丰富的客户端行为的基本事实,与框架无关。这与拥有客户端逻辑有关。对于使用jQuery或直接操作DOM的网站,也存在相同的问题。您作品的主要保护不是模糊(隐藏您的代码),而是版权法。

该代码是客户端的事实有几个分支:

  • 无论您在客户端上实现任何丰富的行为,都必须验证服务器上的所有操作和输入。
  • 如果存在商业机密或专有的业务流程或计算结果或类似内容,则不得在客户端实施它们,因为无论您是否对代码进行混淆处理,代码都是可见的,其他人也可以看到。
  • 是的,这意味着任何人都可以窃取您应用程序的客户端部分。唯一阻止这种情况的就是您的版权。

但是同样,这与框架无关。它与实现部分应用程序客户端有关。


关于框架的旁注:启用为Vue.js,React,Svelte等框架编写的代码的服务器端呈现(SSR)变得越来越流行。因此,使用这些框架之一不一定意味着您编写客户端代码:您只能将其用于服务器端渲染。


但是,最近发生了一件有趣的事情,这可能使反向编程客户端代码变得更加困难:WebAssembly。使用WebAssembly,交付给客户端的不是JavaScript代码,而是WebAssembly字节码。像Java字节码一样,您可以从字节码重新组合源代码,但这是一个非常混乱的过程,并且结果很难使用。因此,就像真正的彻底混淆一样,它提高了门槛,使某人更难接受和重复使用您的工作。但这只会提高标准,而不会阻止它。(这是WebAssembly的附带好处,而不是它的主要优点。WebAssembly的优点在于它可以是编译许多其他语言(包括C,C ++,Rust等)的输出。