您设置了哪些技术解决方案以使您的应用程序源代码至少不会在生产中广泛公开分发到世界其他地方?
有些人可能会争辩说这段代码没有太大的价值,但是完全记录应用程序的对象模型是一个真正的竞争劣势,IMO。
您可以与我们分享任何想法、论点和模式吗?
编辑/精度
我一定不清楚:这个想法不是向允许的用户隐藏应用程序(在这种情况下,我同意,混淆在很大程度上就足够了)。我的意思是在用户未登录时根本不提供应用程序。
您设置了哪些技术解决方案以使您的应用程序源代码至少不会在生产中广泛公开分发到世界其他地方?
有些人可能会争辩说这段代码没有太大的价值,但是完全记录应用程序的对象模型是一个真正的竞争劣势,IMO。
您可以与我们分享任何想法、论点和模式吗?
我一定不清楚:这个想法不是向允许的用户隐藏应用程序(在这种情况下,我同意,混淆在很大程度上就足够了)。我的意思是在用户未登录时根本不提供应用程序。
您不应该像一些流行的教程和视频中显示的那样构建您的水疗中心。不要使用像微风.js 这样的库,它们会暴露你的数据库实体模式,甚至是你对实体对象的查询。不要提供比特定视图所需的更多信息、数据、字段、行等。不要将您的业务规则带到客户端javascript上,将它们隐藏在服务器端api中,并通过ajax调用它们并在客户端上提供结果,在服务器端ajax api上进行大部分复杂的验证只做非常基本的规则在客户端 javascript 上,将那些能给您带来竞争优势的东西留在服务器端 Web api 后面。一个为某些业务线服务的聪明的书面企业水疗中心理想情况下应该只是具有出色用户体验的必要用户界面,仅此而已,
在我的项目中,我只是缩小了 CSS 和 JS 代码,所以它不包括关于生产的注释。但是,嘿,你是对的,代码本身没有太大的价值。我知道一个真正的程序员可以通过查看它来重新创建我所做的 - 所以为什么要麻烦。另外,没有人想重新发明轮子。试图隐藏它们只会带来额外的工作。
因此,只需将它们缩小以提高性能并减少 HTTP 请求。此外,如果您使用把手(因为 Ember.js 被标记),您也可以预编译它。
如果您真的想隐藏所有内容,您可以随时恢复到传统的服务器端应用程序(如传统的 php),而无需任何 javascript。
编辑:现在我明白你的问题了。您可以制作一个没有 javascript 的简单页面供用户登录,并且当登录成功时,将他们重定向到您的 ember 应用程序。
不幸的是(或幸运的是)javascript 永远不会对最终用户完全隐藏,因为浏览器可以访问为页面加载的检查文件。你能做的最好的事情就是通过缩小代码使代码难以阅读。即使您不想隐藏源代码,这也是一个好主意,因为它可以让 javascript 文件更快地加载,从而提高您网站的性能。
缩小基本上会删除您的文件中的所有注释、空格并将所有内容放在一个连续的行上。它看起来与此类似
有许多不同的方法可以缩小 javascript。Grunt可能是我发现的最简单的方法之一。您可以创建一个任务来缩小您的 javascript,甚至让它监视您的文件,因此如果您保存它,它每次都会将其缩小为外部文件。
在一种观点中,如果有理由不考虑隐藏您的代码,那将是鼓励开发行业的发展,并让其他人从您的代码中获得知识。
您能做的最好的事情就是使用某种丑化剂来使代码更难破译。如果代码可以在浏览器中运行,那么它也可以被检查。