Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干安全问题_Backbone.js - Fatal编程技术网

Backbone.js 主干安全问题

Backbone.js 主干安全问题,backbone.js,Backbone.js,开发主干应用程序时可能面临哪些安全风险。有人能告诉我减轻此类风险的最佳做法吗 如同在路由器中一样,任何用户都可以找到被调用的服务保护主干应用程序或任何其他客户端的秘密在于,您不依赖客户端验证。确保在服务器上进行验证 例如,如果您正在构建一个银行应用程序,您不会使用主干网在用户帐户之间转账100美元,然后将新帐户余额作为模型更新发送回服务器。相反,您将向服务器发送用户转账100美元的意图,并让服务器发回新余额。通过这种方式,服务器可以安全地确定用户在帐户之间进行此类转账的授权,确定是否存在足够的资

开发主干应用程序时可能面临哪些安全风险。有人能告诉我减轻此类风险的最佳做法吗


如同在路由器中一样,任何用户都可以找到被调用的服务

保护主干应用程序或任何其他客户端的秘密在于,您不依赖客户端验证。确保在服务器上进行验证

例如,如果您正在构建一个银行应用程序,您不会使用主干网在用户帐户之间转账100美元,然后将新帐户余额作为模型更新发送回服务器。相反,您将向服务器发送用户转账100美元的意图,并让服务器发回新余额。通过这种方式,服务器可以安全地确定用户在帐户之间进行此类转账的授权,确定是否存在足够的资金等

客户端验证有助于减少往返次数并向用户提供即时反馈,但不应将其视为保护应用程序的一种方法。例如,将电子邮件地址的格式或密码发送到服务器之前,验证客户端上的密码强度(应在服务器端再次验证),这是客户端验证的一个好例子


对于web服务,有不同的方法来保护它们。例如,您可以使用HTTPS或基于令牌的身份验证。

另一个问题可能是您暴露了太多的数据。例如:不要返回完整的用户记录(用于填充模型),而只返回应用程序实际需要的数据


我见过一些例子(散列)密码被发送到客户端。

当你在保护一个主干应用程序时要考虑的东西是对应用程序本身的访问。

构建一个身份验证页面,用户在其中输入其登录名/密码,然后如果身份验证得到验证,则设置一个cokkie会话ID

例如,如果在上呈现主视图,则必须使用cookie验证来确保对“/app”的访问

如果后端是nodejs,则示例:

app.get('/app', function(req, res, next){
  if(!loggedIn(req,res))
    sendError(res);
  else
    next();
});
loggedIn基本上会检查cookie中是否有sessionID。如果是,它将允许您访问应用程序,否则将向用户提示“未经授权访问”消息

如前所述,客户端验证很重要,但您必须使用服务器端验证来重新实施它


web服务的HTTPS也很重要。

风险与任何其他web应用程序(或客户端/服务器应用程序)相同。没有特定于主干的内容。