Files
pyGoEdge-UserPanel/reference/goedge 文档/HTTPFirewallPolicyService.md
2025-11-18 03:36:49 +08:00

12 KiB
Raw Blame History

HTTPFirewallPolicyService

HTTP防火墙WAF服务


checkHTTPFirewallPolicyIPStatus

检查IP状态

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/checkHTTPFirewallPolicyIPStatus
  • RPCrpc checkHTTPFirewallPolicyIPStatus (CheckHTTPFirewallPolicyIPStatusRequest) returns (CheckHTTPFirewallPolicyIPStatusResponse);

请求对象 (CheckHTTPFirewallPolicyIPStatusRequest)

{
  "httpFirewallPolicyId": "int64",
  "ip": "string"
}

响应对象 (CheckHTTPFirewallPolicyIPStatusResponse)

{
  "isOk": "bool // 是否查询成功",
  "error": "string // 错误信息",
  "isFound": "bool // 是否找到",
  "isAllowed": "bool // 是否允许访问",
  "ipList": "IPList // 匹配的IPList",
  "ipItem": "IPItem // 匹配的IPItem",
  "regionCountry": "RegionCountry // 匹配到封禁的地区",
  "regionProvince": "RegionProvince // 匹配到封禁的省份"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/checkHTTPFirewallPolicyIPStatus" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

countAllEnabledHTTPFirewallPolicies

计算可用的防火墙策略数量

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/countAllEnabledHTTPFirewallPolicies
  • RPCrpc countAllEnabledHTTPFirewallPolicies (CountAllEnabledHTTPFirewallPoliciesRequest) returns (RPCCountResponse);

请求对象 (CountAllEnabledHTTPFirewallPoliciesRequest)

{
  "keyword": "string // 关键词",
  "nodeClusterId": "int64 // 集群ID"
}

响应对象 (RPCCountResponse)

{
  "count": "int64 // 数量"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/countAllEnabledHTTPFirewallPolicies" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

createEmptyHTTPFirewallPolicy

创建空防火墙策略

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/createEmptyHTTPFirewallPolicy
  • RPCrpc createEmptyHTTPFirewallPolicy (CreateEmptyHTTPFirewallPolicyRequest) returns (CreateEmptyHTTPFirewallPolicyResponse);

请求对象 (CreateEmptyHTTPFirewallPolicyRequest)

{
  "isOn": "bool // 是否启用",
  "name": "string // 名称",
  "description": "string // 描述(备注)",
  "serverId": "int64 // 服务ID网站ID",
  "serverGroupId": "int64 // 服务分组ID网站分组ID"
}

响应对象 (CreateEmptyHTTPFirewallPolicyResponse)

{
  "httpFirewallPolicyId": "int64"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/createEmptyHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

createHTTPFirewallPolicy

创建防火墙策略

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/createHTTPFirewallPolicy
  • RPCrpc createHTTPFirewallPolicy (CreateHTTPFirewallPolicyRequest) returns (CreateHTTPFirewallPolicyResponse);

请求对象 (CreateHTTPFirewallPolicyRequest)

{
  "isOn": "bool // 是否启用",
  "name": "string // 名称",
  "description": "string // 描述(备注)",
  "httpFirewallGroupCodes": "[]string",
  "serverId": "int64 // 服务ID网站ID",
  "serverGroupId": "int64 // 服务分组ID网站分组ID"
}

响应对象 (CreateHTTPFirewallPolicyResponse)

{
  "httpFirewallPolicyId": "int64"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/createHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

deleteHTTPFirewallPolicy

删除某个防火墙策略

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/deleteHTTPFirewallPolicy
  • RPCrpc deleteHTTPFirewallPolicy (DeleteHTTPFirewallPolicyRequest) returns (RPCSuccess);

请求对象 (DeleteHTTPFirewallPolicyRequest)

{
  "httpFirewallPolicyId": "int64"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/deleteHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findAllEnabledHTTPFirewallPolicies

获取所有可用策略

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/findAllEnabledHTTPFirewallPolicies
  • RPCrpc findAllEnabledHTTPFirewallPolicies (FindAllEnabledHTTPFirewallPoliciesRequest) returns (FindAllEnabledHTTPFirewallPoliciesResponse);

请求对象 (FindAllEnabledHTTPFirewallPoliciesRequest)

{}

响应对象 (FindAllEnabledHTTPFirewallPoliciesResponse)

{
  "firewallPolicies": "[]HTTPFirewallPolicy"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findAllEnabledHTTPFirewallPolicies" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findEnabledHTTPFirewallPolicy

获取防火墙的基本信息

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicy
  • RPCrpc findEnabledHTTPFirewallPolicy (FindEnabledHTTPFirewallPolicyRequest) returns (FindEnabledHTTPFirewallPolicyResponse);

请求对象 (FindEnabledHTTPFirewallPolicyRequest)

{
  "httpFirewallPolicyId": "int64"
}

响应对象 (FindEnabledHTTPFirewallPolicyResponse)

{
  "httpFirewallPolicy": "HTTPFirewallPolicy"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findEnabledHTTPFirewallPolicyConfig

查找单个防火墙配置

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicyConfig
  • RPCrpc findEnabledHTTPFirewallPolicyConfig (FindEnabledHTTPFirewallPolicyConfigRequest) returns (FindEnabledHTTPFirewallPolicyConfigResponse);

请求对象 (FindEnabledHTTPFirewallPolicyConfigRequest)

{
  "httpFirewallPolicyId": "int64"
}

响应对象 (FindEnabledHTTPFirewallPolicyConfigResponse)

{
  "httpFirewallPolicyJSON": "bytes"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicyConfig" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findServerIdWithHTTPFirewallPolicyId

获取防火墙对应的网站ID

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/findServerIdWithHTTPFirewallPolicyId
  • RPCrpc findServerIdWithHTTPFirewallPolicyId(FindServerIdWithHTTPFirewallPolicyIdRequest) returns (FindServerIdWithHTTPFirewallPolicyIdResponse);

请求对象 (FindServerIdWithHTTPFirewallPolicyIdRequest)

{
  "httpFirewallPolicyId": "int64 // 防火墙策略ID"
}

响应对象 (FindServerIdWithHTTPFirewallPolicyIdResponse)

{
  "serverId": "int64 // 防火墙策略对应的网站ID公共的防火墙策略的网站ID为0"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findServerIdWithHTTPFirewallPolicyId" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

importHTTPFirewallPolicy

导入策略数据

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/importHTTPFirewallPolicy
  • RPCrpc importHTTPFirewallPolicy (ImportHTTPFirewallPolicyRequest) returns (RPCSuccess);

请求对象 (ImportHTTPFirewallPolicyRequest)

{
  "httpFirewallPolicyId": "int64",
  "httpFirewallPolicyJSON": "bytes"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/importHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

listEnabledHTTPFirewallPolicies

列出单页的防火墙策略

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/listEnabledHTTPFirewallPolicies
  • RPCrpc listEnabledHTTPFirewallPolicies (ListEnabledHTTPFirewallPoliciesRequest) returns (ListEnabledHTTPFirewallPoliciesResponse);

请求对象 (ListEnabledHTTPFirewallPoliciesRequest)

{
  "offset": "int64 // 读取位置",
  "size": "int64 // 数量通常不能小于0",
  "keyword": "string // 关键词",
  "nodeClusterId": "int64 // 集群ID"
}

响应对象 (ListEnabledHTTPFirewallPoliciesResponse)

{
  "httpFirewallPolicies": "[]HTTPFirewallPolicy"
}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/listEnabledHTTPFirewallPolicies" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateHTTPFirewallInboundConfig

修改inbound信息

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallInboundConfig
  • RPCrpc updateHTTPFirewallInboundConfig (UpdateHTTPFirewallInboundConfigRequest) returns (RPCSuccess);

请求对象 (UpdateHTTPFirewallInboundConfigRequest)

{
  "httpFirewallPolicyId": "int64",
  "inboundJSON": "bytes"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallInboundConfig" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateHTTPFirewallPolicy

修改防火墙策略

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicy
  • RPCrpc updateHTTPFirewallPolicy (UpdateHTTPFirewallPolicyRequest) returns (RPCSuccess);

请求对象 (UpdateHTTPFirewallPolicyRequest)

{
  "httpFirewallPolicyId": "int64",
  "isOn": "bool // 是否启用",
  "name": "string // 名称",
  "description": "string // 描述(备注)",
  "firewallGroupCodes": "[]string",
  "blockOptionsJSON": "bytes // 阻止动作配置",
  "pageOptionsJSON": "bytes // 显示网页动作配置",
  "captchaOptionsJSON": "bytes // 验证码动作配置",
  "jsCookieOptionsJSON": "bytes // JSCookie动作配置",
  "mode": "string",
  "useLocalFirewall": "bool // 是否使用本地防火墙",
  "synFloodJSON": "bytes // SYN Flood相关配置",
  "LogJSON": "bytes // 日志相关配置",
  "maxRequestBodySize": "int64 // 最大文件尺寸,单位为字节",
  "denyCountryHTML": "string // 区域封禁提示",
  "denyProvinceHTML": "string // 省份封禁提示"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateHTTPFirewallPolicyGroups

修改分组信息

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicyGroups
  • RPCrpc updateHTTPFirewallPolicyGroups (UpdateHTTPFirewallPolicyGroupsRequest) returns (RPCSuccess);

请求对象 (UpdateHTTPFirewallPolicyGroupsRequest)

{
  "httpFirewallPolicyId": "int64",
  "inboundJSON": "bytes",
  "outboundJSON": "bytes"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicyGroups" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'