在应用程序开发周期结束时延迟安全问题是一个好方法吗?

时间:2014-05-21 05:19:12

标签: c# asp.net security asp.net-web-api asp.net-web-api2

由于我们要开发一些公共API供其他应用程序集成,有人建议我们应该延迟安全性的东西,直到API的方法完成,因此第三方应用程序将有一些工作!这是解决问题的好方法,还是我们应该建立安全性然后开发API本身?

编辑:

这里的问题是成本。让我们说如果你首先拥有它,我认为你不必再重新访问API来进行更改,因为安全性,特别是第三方应用程序,由另一个团队维护。 如果我们将其推迟到完成所有内容并进行集成,那么另一个团队也必须修改和更改代码。

根据您的经验,什么会降低成本?

3 个答案:

答案 0 :(得分:3)

您应该从一开始就拥有设计完整,包括安全性。稍后更改设计将花费更多。 实施最初可能会延迟或不完整。

如果你不这样做,例如知道访问权限的粒度,当你后来发现它必须超出表访问权限或超出SIDU并且实际上工作在行级别时,你将不得不进行大量的重新设计。

放入虚拟函数并计算如何的细节以后实现真实的东西或多或少是免费的,但要做到这一点,首先需要知道什么客户的需求和计划!

答案 1 :(得分:1)

这取决于......

  • 与API安全性相关的整体风险。我们谈论银行/生死攸关的猫图片?风险越大,我就越想提前解决这个问题。
  • 团队的一般技能和经验。经验丰富的人不太可能将自己画成角落。
  • 保护API的适用经验。如果每个人都是第一个这样做的话,我至少会先做详细的计划。

我尽可能在安全性,安全身份验证,ACL等方面采取行动。但是,不要只是说“让我们以后再做”而不能很好地处理决策可能带来的风险。如果您必须尽快开始实施安全问题,那么这些讨论很可能会产生可行的前进道路。

答案 2 :(得分:1)

安全性是一个CROSSCUTTING关注点,这意味着它渗透(并且应该)架构的每个层面。为什么不使用Basic Auth并与第三方应用开​​发者共享密钥呢?

安全必须始终是一个问题。如果您的API完美且您的安全系统存在缺陷,它将无助于延迟。