首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NodeJs网站webapp体系结构

NodeJs网站webapp体系结构
EN

Software Engineering用户
提问于 2014-10-24 06:10:33
回答 1查看 647关注 0票数 2

我想就如何最好地设计一个包含以下内容的网站提供一些建议:

  • 登陆页面,向公众开放,主要营销工具
  • 主要的网站/应用程序,用户只有在注册后才能访问,用户可以根据注册级别(免费/随意/高级用户)访问某些模块,我正在考虑使用AngularJS作为前端的双绑定,并带来用户界面交互。
  • 管理部分:
    • 在那里我们可以与数据库交互
    • 核对用户分析

我担心,如果我对这3部分使用even,那么管理部分甚至可以被公共/空闲用户访问,因为基本上所有东西都存储在客户机上的静态文件中。这仅仅是服务器端的路由问题吗?我应该使用Jade/车把作为管理部分/登陆页面(帮助SEO)和角只是应用程序?在这方面是否有最佳做法?

EN

回答 1

Software Engineering用户

发布于 2014-10-29 12:33:12

在构建角度应用程序时,这是我的总体哲学。如果有必要,我可以补充更多的说明。

所有实际的安全必须在服务器端实现.您在这个角度应用程序中放置的任何安全逻辑(它应该在那里)只是为了方便和可用性,而不是实际的安全性。

必须使用某种身份验证和授权方案在nodejs中访问REST调用,并且应该将401返回给任何请求数据或试图保存他们无法访问的数据的客户端。

同时,向用户展示不起作用的功能(即返回401)是个坏主意。因此,如果有一个按钮做一些用户不允许做的事情,你应该在他们有机会点击它并收到错误之前把它隐藏起来。

要做到这一点,您将需要发送有关当前通过身份验证的用户访问级别的客户端信息,并将特性/行为的可见性从其中删除。但是要明白,这很容易被复杂的用户所规避(例如,使用F12开发工具)。因此,这不是保护应用程序本身的东西,而是使您的应用程序更加友好的东西。

您必须决定将管理功能保密是多么重要。有一个用户不能使用的管理功能是一个秘密吗?还是只需要保护功能本身?如果您正在提供静态文件,那么聪明的用户可以从服务器获取任何这些文件。但这有什么价值呢?这些文件将不包含任何实际数据,单击按钮不会做任何事情(因为您在服务器上保护了api调用)。我们的黑客所能看到的就是一个有角的html模板。那不值钱。一些傻瓜花了那么多精力想弄清楚要下载的文件的名字,S/他看到的只是一堆胡须和ng-*指令。哇哦。

但是,如果您想要保护这一点,则需要对静态文件进行访问。你没有理由免费为他们服务。您可以在服务器上实现安全性,并在返回html和js之前检查授权。做这件事需要做更多的工作,所以这不值得,除非它是必要的,但这是可能的。

最后一个想法:你没有理由被限制为你的应用程序的一个角度应用。您可能需要尝试如下所示的设置:

  • 登陆页(呈现服务器端,公开)
  • 关于Page (呈现服务器端、公共端)
  • 任何其他服务器端页面来销售您的应用程序。
  • App (index.html,您的主要角度应用程序的入口点)
  • 管理应用程序(index.html,您的管理角度应用程序的入口点)

在这里,您有两个水疗中心在同一个two服务器上服务。这种结构干净地分离了您的管理功能。从安全的角度来看,您仍然有所有相同的考虑,但这可能会使您的安全规则更容易实现。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/260806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档