首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于服务器上重要操作的保护

关于服务器上重要操作的保护
EN

Software Engineering用户
提问于 2014-03-12 12:51:18
回答 3查看 97关注 0票数 1

我们开发了一个web服务。并需要我们的重要行动(即资金转移)不受意外调用的保护。在前端,我们要求用户确认这样的操作。好的。

但是,在开发人员出错的情况下,如何防止意外调用呢?

这是个好主意吗,这个操作需要开发人员的一些确认令牌才能进行?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2014-03-12 14:04:35

web服务不应该将UI决策强加在消费应用程序上(这比它必须做的更多)。用户操作的确认是UI决策。

另外,您并不是通过强制执行确认步骤来执行任何操作。如果消费应用程序开发人员愿意,他们可以简单地自动确认。不管是哪种方式,你所做的只是让消费变得更加困难。

如果您作为API提供程序希望对API使用者强制执行UI决策,这是相当公平的。但是,它应该通过一个条款和条件的结合,一个消费者死亡开关和一个事先的验证步骤(即。在我们看到应用程序之前,我们不会批准您的生产API访问)。

票数 4
EN

Software Engineering用户

发布于 2014-03-12 17:26:48

如果您正在向第三方应用程序开发人员公开您的web服务,我可以想到两种情况,即可以在没有用户同意的情况下调用关键API (考虑到您的UI指南):

  1. 代码中的一个bug
  2. 恶意第三方开发人员误用API

对于未指明的使用,我可以建议的是向第三方开发人员提供API键,这将是发布关键API调用所必需的。

这样,您就可以保护您的应用程序不被恶意使用API,以及跟踪哪个第三方发出了哪个调用,以便能够跟踪可疑行为。

至于代码中的bug,它们更棘手,因为没有编程的方法来防止它们。一个可能的解决方案可能是有一个两阶段的确认(即向用户发送一封邮件,其中有一个确认链接,他必须单击该链接才能完成事务),或者(可能更方便用户,但可能不可能,取决于服务)一封带有撤销事务链接的邮件,以防止事后发生意外事务。

票数 2
EN

Software Engineering用户

发布于 2014-03-12 14:18:17

如果您真的觉得确认是必要的,您可以让您的关键服务需要一个时间戳令牌,并要求调用方在调用服务之前立即从您那里获得一个令牌。让令牌在几秒钟内过期(实际的TTL应在测量延迟后确定)。我同意pdr,虽然,这不是一个好的设计模式。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/232117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档