我的网络 api 服务需要访问令牌吗?
Do I need an access token for my web api service?
我有一个用于管理用户数据的应用程序。所有业务逻辑都封装在一个单独的 Web api 服务中,用户管理 Web 应用程序(以及其他)调用该服务。目前所有网络 api 调用都已公开(它们是匿名的)。然而,网络 api 位于一个单独的域上,只能由调用它的应用程序访问。
添加不记名令牌并为每个 API 调用强制验证是否有任何好处?
如果 Web api 服务位于单独的域中并充分保护免受 Internet 影响,则您无需在服务级别进行外部安全性验证(除了您拥有的任何应用程序登录信息之外)。
但是,这并不是说您的应用程序没有内部暴露,可能会被恶意或不正确配置的应用程序有意或无意地调用,例如,有人不小心在生产中点负载测试。出于这个原因,如果您不想实施全面的身份验证,我会保护它 at least with a HMAC。
已编辑:要添加任何 public 面向网络的资产,您应该对数据进行分类并确定要应用的适当安全级别。在某些情况下,您可能不想保护低敏感度数据的 GET。另一方面,公开 GET 允许某人访问尝试拒绝服务攻击(通过从多个服务器/僵尸网络循环调用你的 API)。对于 POST,风险更高,因为消费者将插入到您的数据存储中。
在处理安全问题时牢记 OWASP Top 10 也总是好的。
我有一个用于管理用户数据的应用程序。所有业务逻辑都封装在一个单独的 Web api 服务中,用户管理 Web 应用程序(以及其他)调用该服务。目前所有网络 api 调用都已公开(它们是匿名的)。然而,网络 api 位于一个单独的域上,只能由调用它的应用程序访问。
添加不记名令牌并为每个 API 调用强制验证是否有任何好处?
如果 Web api 服务位于单独的域中并充分保护免受 Internet 影响,则您无需在服务级别进行外部安全性验证(除了您拥有的任何应用程序登录信息之外)。
但是,这并不是说您的应用程序没有内部暴露,可能会被恶意或不正确配置的应用程序有意或无意地调用,例如,有人不小心在生产中点负载测试。出于这个原因,如果您不想实施全面的身份验证,我会保护它 at least with a HMAC。
已编辑:要添加任何 public 面向网络的资产,您应该对数据进行分类并确定要应用的适当安全级别。在某些情况下,您可能不想保护低敏感度数据的 GET。另一方面,公开 GET 允许某人访问尝试拒绝服务攻击(通过从多个服务器/僵尸网络循环调用你的 API)。对于 POST,风险更高,因为消费者将插入到您的数据存储中。
在处理安全问题时牢记 OWASP Top 10 也总是好的。