C# 我的web api服务需要访问令牌吗?

C# 我的web api服务需要访问令牌吗?,c#,asp.net,asp.net-mvc,asp.net-web-api,owin,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,Owin,我有一个管理用户数据的应用程序。所有业务逻辑都封装在单独的web api服务中,用户管理web应用程序(以及其他应用程序)将调用该服务。目前,所有web api调用都是公开的(它们是匿名的)。然而,web api位于一个单独的域上,并且只能由调用它的应用程序访问 为每个API调用添加承载令牌和强制进行身份验证有什么好处吗 如果web api服务位于一个单独的域上,并且受到internet的充分保护,那么您不需要在服务级别进行外部安全验证(除了您拥有的任何应用程序登录之外) 但是,这并不是说您的应

我有一个管理用户数据的应用程序。所有业务逻辑都封装在单独的web api服务中,用户管理web应用程序(以及其他应用程序)将调用该服务。目前,所有web api调用都是公开的(它们是匿名的)。然而,web api位于一个单独的域上,并且只能由调用它的应用程序访问


为每个API调用添加承载令牌和强制进行身份验证有什么好处吗

如果web api服务位于一个单独的域上,并且受到internet的充分保护,那么您不需要在服务级别进行外部安全验证(除了您拥有的任何应用程序登录之外)

但是,这并不是说您的应用程序没有内部公开,可能会被恶意意图或配置不正确的应用程序有意或无意调用,例如,有人无意中在生产环境中指向负载测试。出于这个原因,如果您不想实现完整的身份验证,我会保护它

编辑:要添加任何面向公众的web不动产,您应该对数据进行分类,并决定应用的适当安全级别。在某些情况下,您可能不希望保护低灵敏度数据的GET。另一方面,暴露GET允许某人尝试拒绝服务攻击(通过从多个服务器/僵尸网络在循环中调用API)。当涉及到POST时,风险更高,因为消费者将插入到您的数据存储中


在处理安全性问题时,最好记住这一点

回答得好,我已经查看了链接。让更多的人对这件事发表意见是件好事。核心问题是添加令牌功能需要对遗留系统进行一些巨大的更改,这是一个平衡风险的问题。我建立了支付系统,所以我很有安全意识。如果你的应用程序不是很敏感,可能会受到攻击,并且你可以承受损失停机时间和从备份恢复的代价,那么你可能不需要修改就可以逃脱风险。