明确或隐含地保护REST功能

时间:2014-03-05 18:49:15

标签: rest

所以我正在设计RESTful接口并正在进行访问控制。当调用对象函数时,我根据函数的权限要求测试授予用户令牌的权限。由于大多数功能都是公开的并且只读,因此需求列表中将填充function_name=>public

我是否应该要求每个功能都有权限要求设置,或者我应该假设某个功能是公共的,除非设置了权限要求?

1 个答案:

答案 0 :(得分:0)

所以听起来你的RESTful服务器实现是一些HTTP网关背后的一组函数,你问是否可以使用“如果它没有明确限制,不限制它”的模式到每个API功能的ACL执行。

我总是采用显式方法,强制每个函数明确说明其ACL限制。如果API函数没有设置权限,那么任何人都无法调用它。这背后有很多原因:

  • 如果您离开公司并且其他人接管了代码库,他们可能无法理解隐式行为,并且他们可能无意中将受限制的API公开。
  • 强制您的API明确说明权限会强制您对其中的每一部分做出明确的决定。隐含地这样做会导致事情在这方面陷入困境。
  • 如果您的组织必须提交要扫描的应用程序代码以确保安全性,您可能会因为具有此类隐式行为而被标记。安全世界更喜欢“如果没有明确公开,那就不是”模式。