为什么任何人都可以在没有身份验证的情况下向任何用户进行PUT / POST / GET sails.js蓝图rest api?

时间:2016-09-13 02:56:28

标签: rest sails.js

我一直在使用sails.js几天,我开始创建我的用户模型和REST API。我还在应用程序中实现了Passport,以便为用户进行身份验证。我正在搞乱我的请求,并注意到我可以做任何我想要的其他用户数据,即使我是以不同的用户身份登录,也没有提供密码(只是id)。似乎任何人都可以在未经许可的情况下入侵并删除所有用户数据。这是故意遗漏蓝图API吗?我错过了一些刚刚飞过我头脑的大话题吗?我是否需要添加一些更改权限的其他功能?评论我是否需要发布任何代码来提供帮助。

1 个答案:

答案 0 :(得分:1)

默认情况下,蓝图和路线不受保护,为什么要这样做?您可以使用策略http://sailsjs.org/documentation/concepts/policies例如

来保护它们
{
  ProfileController: {
    // Apply 'isLoggedIn' by default to all actions that are NOT specified below
    '*': 'isLoggedIn',
    // If an action is explicitly listed, its policy list will override the default list.
    // So, we have to list 'isLoggedIn' again for the 'edit' action if we want it to be applied.
    edit: ['isAdmin', 'isLoggedIn']
  }
}