首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护javascript前端/REST后端架构网站的最佳方法?

保护javascript前端/REST后端架构网站的最佳方法?
EN

Security用户
提问于 2011-12-19 20:06:37
回答 1查看 5.6K关注 0票数 18

我想建立以下项目:

  • 公共REST后端,可由任何经过身份验证的客户端访问。
  • 前端使用HTML/CSS/Javascript中的静态文件,对REST后端进行Backbone.js jQuery调用。

实际上,在我的架构中有三个方面:前端,它是后端的客户端,后端和希望在前端登录页面上进行身份验证的用户。

保护参与该体系结构的三方的最佳方法是什么?

事实上,我认为如果我在javascript中完成所有事情,就不可能在前端执行一个安全的应用程序,所以我打算将身份验证/授权委托给服务器前端的代理层。

我的问题是,我不知道如何使用OAuth执行这个工作流:

  • 用户希望在前端创建一个帐户。
  • 前端将帐户创建委托给REST后端。
  • 后端创建帐户并向前面发送一个ack。
  • 然后,用户可以执行需要授权的调用。

而且我还希望我的REST后端可以被任何其他第三方应用程序访问,并使用OAuth。

剩下的后端要用两条腿还是三条腿的OAuth?

我可以把我的前端看作是一个特殊的第三方应用程序,它有能力创建用户帐户吗?

我可以在前端使用什么安全协议?

EN

回答 1

Security用户

发布于 2012-04-22 15:34:20

因为您声明REST只能由经过身份验证的客户端访问,所以首先需要一种会话形式来记住客户端的身份验证状态。根据您是否可以更改REST的服务器代码,您可以在API提供服务器本身上实现这一点。

这可以使用任何众所周知的用户身份验证方法,比如用户名/密码组合,或者使用(自签名)证书。

但是,与HTTP一样,您必须确保密码不会以明文形式通行,一旦会话通过了身份验证,连接就不应该泄漏会话标识符,从而允许它被劫持。这基本上意味着您必须模仿类似SSL的行为,或者为您的前端实现SSL支持。这里可以找到一个例子:http://assl.sullof.com/assl/

您有关OAuth的问题是另一个问题,我建议您在一个单独的问题中问这个问题,如果它仍然是您想知道的。

对于代理层,这是一个可行的选择,前提是除了通过这样的代理之外,API不能公开访问。这个代理层必须实现相同的类似SSL的属性,但是这个设置使您能够保持身份验证逻辑和API提供程序之间的分离。但是,如果您能够更改API,我将不推荐它,因为如果服务器的任何部分意外地提供了对私有API的访问,您就可以绕过身份验证要求。

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

https://security.stackexchange.com/questions/9863

复制
相关文章

相似问题

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