0

我正在构建一个 To Do List Web 应用程序,它可以引导某人完成特定的时间管理技术。因为我还不知道服务器语言,所以我完全使用 JavaScript 和 jQuery 构建了这个应用程序。我是否正确假设任何访问该网站的人都能够看到该网站的所有 JavaScript 文件?我是否应该担心有人可以因此而轻松地复制和使用代码库?

大多数 Web 应用程序是否在服务器端(使用服务器编程语言)而不是客户端(使用 JS)上执行大多数计算(即使它们不涉及使用数据库)?他们这样做是为了让人们无法查看代码库还是有其他原因?(或者这不是标准做法?)

我完全不知道 Web 应用程序开发的标准做法或道路规则是什么,因此感谢任何输入。

对任何使用不当的术语表示歉意。

4

2 回答 2

0

Javascript仍在不断发展。Javascript 引擎,例如。Chrome 制作的 V8 无法与 IE6/7 浏览器中已知的 javascript 引擎相媲美。当然 js、css、html 代码对用户是可见的,你可以做的是缩小和混淆这些代码,但仍然很容易取消缩小。现在非常流行的趋势是构建单页应用程序(SPA),将大多数应用程序逻辑移动到客户端,并且与服务器的通信通过 AJAX 调用 RESTful API 异步完成。

于 2013-06-14T18:37:43.100 回答
0

访问该网站的任何人都可以看到该网站的所有 JavaScript 文件吗?

是的。混淆甚至没有帮助。

我是否应该担心有人可以因此而轻松地复制和使用代码库?

取决于你有什么。

通常安全的东西应该留在服务器上,比如验证,或者对数据库的完全访问。客户端应该具有有限的访问权限。通常,您在客户端拥有的东西纯粹是为了演示和用户体验。

大多数 Web 应用程序是否在服务器端(使用服务器编程语言)而不是客户端(使用 JS)上执行大多数计算(即使它们不涉及使用数据库)?

取决于任务。

有时开发人员只是将逻辑放在服务器上,因为它在那里更快。想想 Google Directions 以及它如何通过无限可能计算路线。您不希望本地机器为您执行此操作

但有些应用程序被设计为“离线优先”,即使没有互联网连接也可以运行。想想 Gmail,即使您拔掉 Internet 连接的插头,它也会继续运行(在某种程度上)。它甚至会告诉您没有连接,并等到您重新获得连接以发送待处理的邮件。

他们这样做是为了让人们无法查看代码库还是有其他原因?(或者这不是标准做法?)

有时是的,例如验证和身份验证。您不希望人们知道您是如何做到的,或者当您加密某些东西或使用什么盐来散列您的密码时发生了什么。

于 2013-06-14T18:37:52.617 回答