0

例如,对于服务 REST API,http://service_host/stores/count=30将返回从 DB 中提取的 30 个存储。

如果有人输入count=99999999,服务将花费相当长的时间来返回所有商店。我应该限制服务端的计数参数吗?或者我应该让客户执行他们需要的任何限制吗?

此外,在服务端实现此计数参数(如有效类型、正值等)的验证是否更好?我倾向于使服务强大而安全,但不愿过多地检查它。

这里有什么设计惯例要遵循吗?

4

2 回答 2

2

作为一般规则,不要依赖客户表现得很好。始终在服务器端保护自己。验证类型,强制参数限制,检查无效输入。否则客户端可能会无意中使您的整个系统瘫痪(更不用说恶意攻击了)。

于 2013-08-08T06:14:18.060 回答
1

您应该对服务端的参数进行限制,以便您的服务可靠,但同时您应该为客户端提供一个选项,以通过单独的请求获取更多项目。这通常通过接受 2 个参数来完成 -offsetcount. 偏移量是要返回的第一个项目的位置和计数 - 项目的数量,从offset要返回的开始。

一般来说——不要让客户滥用你的服务。在服务中实施有意义的限制,使其可靠并让客户端完成繁重的工作(创建和发送多个请求)。同时支持那些多个请求和文档​​,特别是如果该服务将由 3rd 方开发人员使用。

于 2013-08-08T10:03:52.533 回答