休息安全确保资源删除

时间:2017-03-03 15:12:36

标签: rest security denial-of-service

背景:
我是一家刚从大学毕业的新开发人员,这家公司在其内部服务中使用了RPC架构风格。

他们似乎也经常改变他们在幕后使用的工具,因此RPC中客户端和服务器实现之间的紧密耦合是有问题的。

我的任务是重写其中一项服务,我觉得RESTful api是一个很好的匹配,因为支持技术无论如何只能处理文件,但我有几个问题。

到目前为止,我对REST的理解是你尽可能地打破操作并将注意力转移到资源上,所以客户端和服务器一起创建一个状态机,服务器主要处理通过超媒体过渡。

示例:
假设您有一个服务,它接收一个文件并将其分成两个字节。

我会为此设计序列,如

  1. 客户端会POST他们想要拆分的文件,
    • 服务器拆分文件
    • 服务器将两个结果片段写入临时文件夹
    • 服务器返回客户端应该获取的文件URI' s
  2. 客户端发送一个对于
    • 服务器的GET返回该块并且客户端应该删除URI
  3. 客户端发送URI的DELETE
两件都做了2和3件。

我的问题是:
如何确保最后删除件?

  • 客户可能不会遵循第3步
  • 如果您合并第2步和第3步,恶意(或疏忽)客户可能会在第1步之后停止
  • 但如果你把它们全部合并,那不就是RPC over HTTP吗?

1 个答案:

答案 0 :(得分:0)

如果有问题的2件是不可分割的,那么它们实际上只是单一资源的属性。

是的,如果POST / PUT后面必须跟一个DELETE,那么你可能只是想把RPC变成一个REST风格的架构。

对于什么" REST"没有真正的定义。实际上是,但如果确定的一件事是它必须是无国籍的;即每个单独的请求必须是自给自足的 - 它不能依赖于先前的请求,也不能强制要求后续请求。