验证 POST 操作中的参数长度(Azure API 管理)
Validate length of parameter in POST operation (Azure API Management)
我已经通过此操作在 Azure API 上创建了一个 API 管理:
POST https://example.azure-api.net/product/check
content-type: application/json
{
"productId":"a77swsa2"
}
productId
是一个不能超过 8 个字符的字符串。我如何保护 Azure APIM 上的 API,以便拒绝所有包含超过 8 个字符的 productId
的请求?现在我看到可以粘贴巨大的字符串并且它全部发送到后端。
您可以通过两种方式做到这一点:
- 手动使用
choose
策略和 context.Request.Body.As<Jobject>()
将请求正文解析为 JObject
,然后检查 "productId"
以检查其长度,如果它大于 8 个字符,则使用 return-response
使请求失败的策略。
- 如果您的 API 架构正确,您可以使用
validate-content
策略。
我已经通过此操作在 Azure API 上创建了一个 API 管理:
POST https://example.azure-api.net/product/check
content-type: application/json
{
"productId":"a77swsa2"
}
productId
是一个不能超过 8 个字符的字符串。我如何保护 Azure APIM 上的 API,以便拒绝所有包含超过 8 个字符的 productId
的请求?现在我看到可以粘贴巨大的字符串并且它全部发送到后端。
您可以通过两种方式做到这一点:
- 手动使用
choose
策略和context.Request.Body.As<Jobject>()
将请求正文解析为JObject
,然后检查"productId"
以检查其长度,如果它大于 8 个字符,则使用return-response
使请求失败的策略。 - 如果您的 API 架构正确,您可以使用
validate-content
策略。