RouterChecker HTTP 请求路由检查

使用 routerchecker 中间件阻止无效的 HTTP 请求路由

RouterChecker HTTP 中间件 组件通过正则表达式来验证 HTTP 请求路由的有效性,防止无效路由进入 Dapr 集群。RouterChecker 组件能够过滤掉不良请求,从而减少遥测和日志数据中的噪音。

组件格式

RouterChecker 对传入的 HTTP 请求应用一组规则。您可以在组件的元数据中使用正则表达式来定义这些规则。在以下示例中,HTTP 请求 RouterChecker 被设置为验证所有请求路径是否符合 ^[A-Za-z0-9/._-]+$ 这个正则表达式。

apiVersion: dapr.io/v1alpha1 kind: Component metadata:  name: routerchecker  spec:  type: middleware.http.routerchecker  version: v1  metadata:  - name: rule  value: "^[A-Za-z0-9/._-]+$" 

在此示例中,上述定义将导致以下请求被通过或拒绝:

PASS /v1.0/invoke/demo/method/method PASS /v1.0/invoke/demo.default/method/method PASS /v1.0/invoke/demo.default/method/01 PASS /v1.0/invoke/demo.default/method/METHOD PASS /v1.0/invoke/demo.default/method/user/info PASS /v1.0/invoke/demo.default/method/user_info PASS /v1.0/invoke/demo.default/method/user-info  FAIL /v1.0/invoke/demo.default/method/cat password FAIL /v1.0/invoke/demo.default/method/" AND 4210=4210 limit 1 FAIL /v1.0/invoke/demo.default/method/"$(curl 

规格元数据字段

字段详情示例
ruleHTTP 请求 RouterChecker 使用的正则表达式^[A-Za-z0-9/._-]+$

Dapr 配置

要应用中间件,必须在配置中引用。请参阅中间件管道

apiVersion: dapr.io/v1alpha1 kind: Configuration metadata:  name: appconfig spec:  httpPipeline:  handlers:  - name: routerchecker   type: middleware.http.routerchecker 

相关链接