华为云用户手册

  • 响应示例 状态码: 200 OK { "content_type" : "json", "created_time" : "2020-09-18T09:25:59Z", "description" : "", "id" : "bd42841c20184da6bbf457c6d8a06e37", "instance" : "f0fa1789-3b76-433b-a787-9892951c620e", "method" : "GET", "modified_time" : "2020-09-18T09:25:59Z", "name" : "livedata_api_demo", "parameters" : [ ], "path" : "/test/function", "return_format" : false, "roma_app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d", "scripts" : [ { "type" : "SQL", "object_name" : "fun", "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ==", "created_time" : "2020-09-19T06:29:35Z", "modified_time" : "2020-09-19T06:29:35Z" } ], "status" : 1, "type" : "", "version" : "1.0.1" } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3081", "error_msg" : "authorizer with id: 0d982c1ac3da493dae47627b6439fc5c not found" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 api_id 否 String 后端API编号 api_type 否 String API类型 data:数据API function:函数API scripts 否 Array of LdApiScript objects API脚本信息列表 表4 LdApiScript 参数 是否必选 参数类型 描述 ds_id 否 String 数据源编号,当api_type = data时,必选 ds_name 否 String 数据源名称 ds_type 否 String 数据源类型: oracle:oracle数据源类型 mysql:mysql数据源类型 mongodb:mongodb数据源类型 redis:redis数据源类型 postgresql:postgresql/opengauss数据源类型 hive:hive数据源类型 mssql:sqlserver数据源类型 sqlserver:sqlserver数据源类型 dws:dws数据源类型 gauss100:gauss100数据源类型 zenith:zenith数据源类型 hana: hana数据源类型 clickhouse: clickhouse数据源类型 mrshive: mrshive数据源类型(tag:Site_hybrid) dm : dameng数据源类型(tag:hcs) opengauss : opengauss数据源类型(tag:hcs) type 否 String 脚本类型 SQL:sql语句 SP:存储过程 object_name 是 String 返回对象。 最小长度:1 最大长度:32 content 是 String API脚本内容 请对脚本进行base64编码 最小长度:1 最大长度:100000 enable_result_paging 否 Boolean 数据脚本是否结果分页,当api_type = data时有效 缺省值:false enable_preparestatement 否 Boolean 数据脚本是否预编译,当api_type = data时有效 缺省值:false created_time 否 String 后端API脚本创建时间 modified_time 否 String 后端API脚本修改时间
  • 请求示例 { "api_id" : "bd42841c20184da6bbf457c6d8a06e37", "api_type" : "function", "scripts" : [ { "type" : "SQL", "object_name" : "fun", "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ==" } ] }
  • 响应示例 状态码: 200 OK { "total" : 1, "size" : 1, "items" : [ { "source_id" : 35296, "product_id" : 122893, "device_id" : 711568, "topic" : "/v1/devices/214/datas", "device_name" : "device", "product_name" : "product", "is_base64" : 0, "contain_device_info" : 0 } ] } 状态码: 400 Bad Request { "error_code" : "SCB.00000000", "error_msg" : "Parameter is not valid for operation [romalink.link-rulesrc.query]. Parameter is [rule_oid]. Processor is [path].", "request_id" : "cb39e78a-afd3-4e04-901d-70468b1c23dc-1619602712496-cnnorth7a-P-romalink-service01" } 状态码: 404 Not Found { "error_code" : "ROMA.00110006", "error_msg" : "The resource does not exist. Check whether the resource ID 1 is correct.", "request_id" : "13984193-ca65-4954-9b7f-4b7d680399d6-1619678681445-cnnorth7a-P-romalink-service01" } 状态码: 500 Internal Server Error { "error_code" : "ROMA.00110002", "error_msg" : "The instance does not exist. project_id: 397cd10b30544c588b2f4a56d83856c4, instance_id: f3bb386a-23ec-47aa-9943-4c60ac658611", "request_id" : "c8c06d0a-be92-4fdf-9d10-bc20131ab158-1619593104919-cnnorth7a-P-romalink-service01" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 总数。 最小值:0 最大值:9999999999999999 size Integer 本次返回数量。 最小值:0 最大值:999 items Array of Source objects 数据源列表。 数组长度:0 - 9999 表5 Source 参数 参数类型 描述 source_id Integer 源数据源ID。 最小值:1 最大值:99999999999999999 product_id Integer 产品ID 最小值:1 最大值:99999999999999999 device_id Integer 设备ID,不填为全部设备。 最小值:1 最大值:99999999999999999 topic String 主题,当设备ID为空时为产品级主题,设备ID不为空时为设备级主题。 最小长度:0 最大长度:200 device_name String 设备名称。 最小长度:0 最大长度:64 product_name String 产品名称。 最小长度:0 最大长度:64 is_base64 Integer 是否payload使用base64,0-是,1-否。 最小值:0 最大值:10 缺省值:1 contain_device_info Integer 是否包含设备信息,0-是,1-否。 最小值:0 最大值:10 缺省值:1 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 总数。 最小值:0 最大值:99999999 size Integer 本次返回数量。 最小值:0 最大值:9999 items Array of ProductTemplate objects 产品模板信息。 数组长度:0 - 9999 表5 ProductTemplate 参数 参数类型 描述 id Integer 产品模板ID。 最小值:1 最大值:99999999999999999 name String 产品模板名称。 最小长度:1 最大长度:64 description String 产品模板描述。 最小长度:0 最大长度:200 status Integer 产品模板状态,0-启用,1-停用。 最小值:0 最大值:10 created_user CreatedUser object 创建时的用户。 last_updated_user LastUpdatedUser object 最后更新时的用户。 created_datetime Long 创建时间,timestamp(ms),使用UTC时区。 最小值:1 最大值:99999999999999999 last_updated_datetime Long 最后修改时间,timestamp(ms),使用UTC时区。 最小值:1 最大值:99999999999999999 表6 CreatedUser 参数 参数类型 描述 user_id String 用户ID(保留字段,未使用)。 最小长度:0 最大长度:64 user_name String 用户名。 最小长度:0 最大长度:64 表7 LastUpdatedUser 参数 参数类型 描述 user_id String 用户ID(保留字段,未使用)。 最小长度:0 最大长度:64 user_name String 用户名。 最小长度:0 最大长度:64 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。 最小长度:0 最大长度:64 error_msg String 错误描述。 最小长度:0 最大长度:200 request_id String 消息ID。 最小长度:0 最大长度:64
  • 响应示例 状态码: 200 OK { "total" : 1, "size" : 1, "items" : [ { "id" : 2235, "name" : "template", "description" : "description", "status" : 0, "created_user" : { "user_id" : "", "user_name" : "user" }, "last_updated_user" : { "user_id" : "", "user_name" : "user" }, "created_datetime" : 1607303564596, "last_updated_datetime" : 1607571061057 } ] } 状态码: 400 Bad Request { "error_code" : "SCB.00000000", "error_msg" : "Parameter is not valid for operation [romalink.link-producttemplate.pageQuery]. Parameter is [status]. Processor is [query].", "request_id" : "cb39e78a-afd3-4e04-901d-70468b1c23dc-1619602712496-cnnorth7a-P-romalink-service01" } 状态码: 404 Not Found { "error_code" : "SCB.00000000", "error_msg" : "Not Found", "request_id" : "624c8be1-39b6-47b7-941d-c159aced368a-1619602544650-cnnorth7a-P-romalink-service01" } 状态码: 500 Internal Server Error { "error_code" : "ROMA.00110002", "error_msg" : "The instance does not exist. project_id: 397cd10b30544c588b2f4a56d83856c4, instance_id: f3bb386a-23ec-47aa-9943-4c60ac658611", "request_id" : "c8c06d0a-be92-4fdf-9d10-bc20131ab158-1619593104919-cnnorth7a-P-romalink-service01" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 task_name 是 String 任务名称,只能以字母、数字为开头,包含字母、数字和 . _ - 3~100个字符。 最小长度:3 最大长度:100 task_id 否 String 任务ID,可以为空。 最小长度:3 最大长度:50 task_type 否 String 任务类型,目前组合任务仅支持实时任务。 REALTIME (实时) TIMING (定时) 最小长度:1 最大长度:10 description 否 String 描述信息。 最小长度:1 最大长度:1024 task_tag 否 String 任务标签,只能包含字母、数字、中划线、下划线。 最小长度:4 最大长度:64 operation_types 是 Array of strings 需要支持的操作类型,支持多选,至少需要选择以下一种: INSERT UPDATE DELETE 数组长度:1 - 3 source_app_id 否 String 源端数据源所属集成应用ID。 最小长度:1 最大长度:64 target_app_id 否 String 目标端数据源所属集成应用ID。 最小长度:1 最大长度:64
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 task_id String 任务ID, 可为空。 最小长度:1 最大长度:64 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:8 最大长度:36 error_msg String 错误描述。 最小长度:2 最大长度:512 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:8 最大长度:36 error_msg String 错误描述。 最小长度:2 最大长度:512 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:8 最大长度:36 error_msg String 错误描述。 最小长度:2 最大长度:512
  • 请求示例 创建一个数据集成组合任务,任务类型为实时任务,包含插入、更新和删除操作 { "task_name" : "cdctest1", "task_id" : "a9fe65f41****6a5d646477c52", "task_type" : "REALTIME", "description" : "create", "task_tag" : "combination", "operation_types" : [ "INSERT", "UPDATE", "DELETE" ], "source_app_id" : "d5afd9af-a8fe-47f6-a98c-edbcba11a0da", "target_app_id" : "d5afd9af-a8fe-47f6-a98c-edbcba11a0da" }
  • 响应示例 状态码: 400 Bad Request { "error_code" : "FDI.3150", "error_msg" : "The task list is empty." } 状态码: 404 Not Found { "error_code" : "FDI.3083", "error_msg" : "One or more scheduled tasks are not configured with scheduled plans." }
  • 响应示例 状态码: 200 OK { "histories" : { "api_id" : "1d0432f1a82a49d08b9308ae7bd96ca6", "deploy_time" : "2020-09-28T11:01:09Z", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "group_id" : "01ce7564a2544713b80c7c08eb85f5d0", "id" : "abbe44b56eda428d84172343674c9cd6", "ld_api_id" : "bd42841c20184da6bbf457c6d8a06e37" } } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3084", "error_msg" : "The livedata API does not exist, id: bd42841c20184da6bbf457c6d8a06e37" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 编号 name String API分组名称 status Integer 状态 1:有效 2:锁定 sl_domain String 系统默认分配的子 域名 register_time String 创建时间 update_time String 最近修改时间 on_sell_status Integer 是否已上架云市场: 1:已上架 2:未上架 3:审核中 ROMA Connect暂未对接云市场,此字段默认返回2 url_domains Array of UrlDomain objects 分组上绑定的独立域名列表 sl_domains Array of strings 系统默认分配的子域名列表 remark String 描述 call_limits Integer 流控时长内分组下的API的总访问次数限制,默认不限,请根据服务的负载能力自行设置 暂不支持 time_interval Integer 流控时长 暂不支持 time_unit String 流控的时间单位 暂不支持 is_default Integer 是否为默认分组 version String 分组版本 V1:全局分组 V2:应用级分组 roma_app_id String 分组归属的集成应用编号。 分组版本V2时必填。 roma_app_name String 分组归属的集成应用名称 表4 UrlDomain 参数 参数类型 描述 id String 域名编号 domain String 访问域名 cname_status Integer 域名cname状态: 1:未解析 2:解析中 3:解析成功 4:解析失败 ssl_id String SSL证书编号 ssl_name String SSL证书名称 min_ssl_version String 最小ssl协议版本号。支持TLSv1.1或TLSv1.2 缺省值:TLSv1.1 verified_client_certificate_enabled Boolean 是否开启客户端证书校验。只有绑定证书时,该参数才生效。当绑定证书存在trusted_root_ca时,默认开启;当绑定证书不存在trusted_root_ca时,默认关闭。 缺省值:false is_has_trusted_root_ca Boolean 是否存在信任的根证书CA。当绑定证书存在trusted_root_ca时为true。 缺省值:false ssl_infos Array of SslInfo objects SSL证书列表 表5 SslInfo 参数 参数类型 描述 ssl_id String SSL证书编号 ssl_name String SSL证书名称 algorithm_type String 证书算法类型: RSA ECC SM2 type String 证书可见范围: instance:当前实例 global:全局 缺省值:global 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "update_time" : "2020-07-31T06:55:55Z", "name" : "api_group_001", "on_sell_status" : 2, "remark" : "group1", "sl_domains" : [ "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.cn" ], "sl_domain" : "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "register_time" : "2020-07-31T06:55:55Z", "status" : 1, "is_default" : 2, "version" : "V1" } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3001", "error_msg" : "API group c77f5e81d9cb4424bf704ef2b0ac7600 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • WAF获取真实IP是从报文中哪个字段获取到的? WAF引擎会根据防护规则确定是否代理转发请求去后端,如果WAF配置了基于IP的规则(比如黑白名单、地理位置、基于IP的精准访问防护规则),那么WAF引擎就会获取真实IP后才能放行或者拦截代理请求。获取真实IP的方法基于以下原则: 在WAF中开启了代理,即添加域名时,“是否已使用代理”选择了“四层代理”或“七层代理”,按以下顺序获取源IP: 优先取“upstream”中配置的源IP头列表,即在域名的基本信息页面配置的“IP标记”,具体的操作请参见配置攻击惩罚的流量标识。如果未取到,执行2。 如果想以TCP连接IP作为客户端IP,“IP标记”应配置为“remote_addr”。 取config中配置的源IP头列表“cdn-src-ip”字段对应的值,未取到,执行3。 取“x-real-ip”字段的值,未取到,执行4。 取“x-forwarded-for”字段左边开始第一个公网IP,未取到,执行5。 取WAF看到的TCP连接IP,“remote_addr”字段对应的值。 在WAF中未开启代理,即添加域名时,“是否已使用代理”选择了“无代理”,直接取“remote_ip”字段的值为真实IP。 获取客户端的真实IP的具体方法,详见获取客户端真实IP。 父主题: 防护日志
  • WAF转发和Nginx转发有什么区别? WAF转发和Nginx转发的主要区别为Nginx是直接转发访问请求到源站服务器,而WAF会先检测并过滤恶意流量,再将过滤后的访问请求转发到源站服务器,详细说明如下: WAF转发 网站接入WAF后,所有访问请求将先经过WAF,WAF通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击流量后,将正常流量返回给源站,从而确保Web应用安全、稳定、可用。 图1 防护原理 Nginx转发 即反向代理(Reverse Proxy)方式转发。反向代理服务器接受客户端访问请求后,直接将访问请求转发给Web服务器,并将从Web服务器上获取的结果返回给客户端。反向代理服务器安装在网站机房,代理Web服务器接收访问请求,并对访问请求进行转发。 反向代理可以防止外网对内网服务器的恶性攻击,缓存以减少内网服务器压力,还可以实现访问安全控制和负载均衡。 图2 Nginx转发原理 父主题: 产品咨询
  • Web应用防火墙 云防火墙 有什么区别? Web应用防火墙和云防火墙是华为云推出的两款不同的产品,分别针对您的Web服务,互联网边界和VPC边界的流量进行防护。 WAF和CFW的主要区别说明如表1所示。 表1 WAF和CFW的主要区别说明 类别 Web应用防火墙 云防火墙 定义 Web应用防火墙(Web Application Firewall,WAF),通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定。 云防火墙(Cloud Firewall,CFW)是新一代的云原生防火墙,提供云上互联网边界和VPC边界的防护,包括实时入侵检测与防御、全局统一访问控制、全流量分析可视化、日志审计与溯源分析等,同时支持按需弹性扩容、AI提升智能防御能力、灵活扩展满足云上业务的变化和扩张需求,极简应用让用户快速灵活应对威胁。云防火墙服务是为用户业务上云提供网络安全防护的基础服务。 有关CFW的详细介绍,请参见什么是云防火墙。 防护机制 网站成功接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,网站所有访问请求将先流转到WAF,WAF检测过滤恶意攻击流量后,将正常流量返回给源站,从而确保源站安全、稳定、可用。 CFW可对全流量进行精细化管控,包括互联网边界防护,跨VPC,NAT流量防护,防止外部入侵、内部渗透攻击和从内到外的非法访问。 部署模式 WAF支持云模式、独享模式和ELB模式。 云模式-CNAME接入:业务服务器部署在华为云、非华为云或线下,且防护对象为域名。 各服务版本推荐使用的场景说明如下: 入门版 个人网站防护 标准版 中小型网站,对业务没有特殊的安全需求 专业版 中型企业级网站或服务对互联网公众开放,关注数据安全且具有高标准的安全需求 铂金版 中大型企业网站,具备较大的业务规模,或是具有特殊定制的安全需求 云模式-ELB接入:业务服务器部署在华为云,防护对象为域名或IP。大型企业网站,对业务稳定性有较高要求的安全防护需求。 独享模式:业务服务器部署在华为云,防护对象为域名或IP。大型企业网站,具备较大的业务规模且基于业务特性具有制定个性化防护规则的安全需求。 互联网边界和VPC边界 防护对象 云模式-CNAME接入:域名。 独享模式/云模式-ELB接入:域名或IP。 弹性公网IP和VPC 功能特性 SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击防护。 WAF具体支持的功能请参见功能特性。 资产管理与入侵防御:对已开放公网访问的服务资产进行安全盘点,进行实时入侵检测与防御。 访问控制:支持互联网边界访问流量的访问控制。 流量分析与日志审计:VPC间流量全局统一访问控制,全流量分析可视化,日志审计与溯源分析。 父主题: 产品咨询
  • WAF如何解析/访问IPv6源站? 当防护网站的源站地址配置为IPv6地址时,WAF直接通过IPv6地址访问源站。WAF默认在CNAME中增加IPv6地址解析,IPv6的所有访问请求将先流转到WAF,WAF检测并过滤恶意攻击流量后,将正常流量返回给源站,从而确保源站安全、稳定、可用。 WAF支持IPv6/IPv4双栈模式和NAT64机制,详细说明如下: Web应用防火墙支持IPv6/IPv4双栈,针对同一域名可以同时提供IPv6和IPv4的流量防护。 针对仍然使用IPv4协议栈的Web业务,Web应用防火墙支持NAT64机制(NAT64是一种通过 网络地址转换 (NAT)形式促成IPv6与IPv4主机间通信的IPv6转换机制),即WAF可以将外部IPv6访问流量转化成对内的IPv4流量。 哪些Region支持IPv6防护请参考功能总览。 仅专业版和铂金版支持IPv6防护。 父主题: IPv6防护
  • 如果只允许指定地区的IP可以访问,如何设置防护策略? 如果您只允许某一地区的IP访问防护域名,例如,只允许来源“上海”地区的IP可以访问防护域名,请参照以下步骤处理。 由于地理位置访问控制的优先级高于内置规则的检测,配置了该地区IP放行后,WAF将不再检测其他的Web基础防护策略,直接放行。 添加一条地理位置访问控制规则,添加“上海”地区的“放行”防护动作,如图1所示。 图1 添加“放行”防护动作 有关配置地理位置访问控制规则的详细介绍,请参见配置地理位置访问控制规则。 配置一条精准访问防护规则,拦截所有的请求,如图2所示。 图2 拦截所有访问请求 有关配置精准访问防护规则的详细介绍,请参见配置精准访问防护规则。 父主题: 防护规则
  • WAF是如何计算域名个数的? WAF支持的防护域名个数计算方式说明如下: 域名个数为一级域名(例如,example.com)、单域名/二级域名等子域名(例如,www.example.com)和泛域名(例如,*.example.com)的总数。例如,标准版支持防护10个域名,可以添加1个一级域名和9个与其相关的子域名或泛域名。 同一个域名对应不同端口视为不同的域名,例如www.example.com:8080和www.example.com:8081视为两个不同的域名,将占用两个不同的域名防护额度。 WAF支持上传的证书套数和WAF支持防护的域名的个数相同。例如,购买了标准版WAF(支持防护10个域名)、1个独享版WAF(支持防护2,000个域名)和域名扩展包(20个域名),WAF可以防护2,030个域名,则WAF支持上传2,030套证书。 有关WAF各版本支持防护的域名个数的详细说明,请参见服务版本差异。 父主题: 购买和变更规格
  • 如果流量超过Web应用防火墙的业务请求限制,该如何处理? 如果您的正常业务流量超过您已购买的WAF版本的业务请求限制,您在WAF中配置的全部业务的流量转发将可能受到影响。 超出业务请求限制后,可能出现限流、随机丢包、自动Bypass等现象,导致您的正常业务在一定时间内不可用、卡顿、延迟等。 超出业务请求限制后,WAF不会发告警通知,当QPS超过版本支持的峰值且受到攻击时,WAF会发送告警通知。有关告警通知的详细介绍,请参见开启告警通知。 如果出现这种情况,您需要升级WAF版本或者扩展业务QPS,避免正常业务流量超出业务带宽限制所产生的影响。 有关升级版本的详细介绍,请参见变更WAF云模式版本和规格。 父主题: 购买和变更规格
  • Web应用防火墙支持配置泛域名吗? 在WAF中添加防护的域名时,您可以根据业务需求配置单域名或泛域名,说明如下: 入门版不支持添加泛域名。 单域名 配置待防护的单域名。例如:www.example.com。 泛域名 配置泛域名可以使泛域名下的多级域名经过WAF防护。 如果各子域名对应的服务器IP地址相同:配置防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条配置。 有关添加防护域名的详细操作,请参见添加防护域名。 父主题: 网站接入
  • 如何降低Web应用防火墙的版本和规格? WAF云模式提供了入门版、标准版、专业版和铂金版四种服务版本。WAF支持降低WAF的版本和域名扩展包、QPS扩展包、规则扩展包的数量,如果您需要降低当前的WAF版本和规格,在产品信息页面进行操作,详细操作请参见变更WAF云模式版本和规格。 已到期的服务版本,不支持变更规格,请先完成续费再变更规格。 扩展包只能退订未使用的扩展包。 有关WAF各版本规格的详细说明,请参见服务版本差异。 有关退订的详细操作,请参见如何退订Web应用防火墙?。 有关退订重购后,原配置数据的相关说明,请参见退订后重购WAF,原配置数据可以保存吗?。 父主题: 购买和变更规格
  • 已使用华为云APIG还需要购买WAF吗? 华为云API网关(API Gateway,APIG)是对API提供者和API调用者提供API托管的服务,APIG可以快速将企业服务能力包装成标准 API服务 ,帮助企业轻松构建、管理和部署不同规模的API。APIG不会针对域名进行防护,在满足API安全使用的前提下,APIG可以对绑定的域名提供IP黑白名单控制、防重放攻击、认证鉴权防护功能。 华为云Web应用防火墙(Web Application Firewall,WAF)是对域名提供Web安全防护的服务。域名接入WAF后,WAF可以对网站业务流量进行多维度检测和防护,识别并阻断SQL注入、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,全方位保护Web服务安全稳定。 如果您需要为APIG中绑定的域名提供全方位的防护功能,您可以购买WAF,并将域名接入WAF,以轻松应对各种Web安全风险。 有关WAF功能的详细介绍,请参见功能特性。 有关购买WAF的详细操作,请参见购买Web应用防火墙。 有关使用WAF的详细操作,请参见操作指南。 父主题: 产品咨询
  • 黑白名单规则和精准访问防护规则的拦截指定IP访问请求,有什么差异? 黑白名单规则和精准访问防护规则都可以拦截指定IP访问请求,两者的区别说明如表1所示。 表1 黑白名单规则和精准访问防护规则区别 防护规则 防护功能 WAF检测顺序 黑白名单规则 只能阻断、仅记录或放行指定IP地址/IP地址段的访问请求。 最高 WAF根据配置的防护规则,按照防护规则检测顺序,进行访问请求过滤检测。 精准访问防护规则 对常见的HTTP字段(如IP、路径、Referer、User Agent、Params等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置放行或阻断操作。 低于黑白名单规则 父主题: 防护规则
  • 如何获取拦截的数据? 通过Web应用防火墙服务可下载5天内的所有防护域名的仅记录和拦截的攻击事件数据,当天的防护事件数据,在次日凌晨生成防护事件数据的 CS V文件。 在“安全总览”页面,您可以查看昨天、今天、3天、7天、30天或自定义30天任意时间段内所有防护网站或所有实例以及指定防护网站或实例的防护日志。包括请求与各攻击类型统计次数,QPS、带宽、响应码信息,以及事件分布、受攻击域名 Top5、攻击源IP Top5、受攻击URL Top5、攻击来源区域 Top5和业务异常监控 Top5等防护数据。 可参照下载防护事件数据章节获取拦截数据。 父主题: 防护日志
  • 操作指导 添加域名后,WAF会根据添加的域名是否已在WAF前使用了代理,生成CNAME值或者CNAME、子域名和TXT记录,用于域名解析,使网站流量切入WAF,相关操作指导参见表1。 表1 操作指导 场景 生成的参数值 域名解析的相关操作 未使用代理 CNAME 把DNS解析到WAF的“CNAME”。 使用代理 CNAME、子域名和TXT记录 将DDoS高防等代理回源地址修改为WAF的“CNAME”。 (可选)在DNS服务商处添加一条WAF的“子域名”和“TXT记录”。
  • 工作原理 未使用代理 当网站没有接入到WAF前,DNS直接解析到源站的IP,所以当网站接入WAF后,需要把DNS解析到WAF的CNAME,这样流量才会先经过WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。 使用了DDoS高防等代理 当网站没有接入到WAF前,DNS解析到高防等代理,流量先经过高防等代理,高防等代理再将流量直接转到源站。网站接入WAF后,需要将高防等代理回源地址修改为WAF的“CNAME”,这样流量才会被高防等代理转发到WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。 为了确保WAF转发正常,在修改DNS解析配置前,建议您参照本地验证进行本地验证确保一切配置正常。 为了防止其他用户提前将您的域名配置到Web应用防火墙上,从而对您的域名防护造成干扰,建议您到DNS服务商处添加“子域名”,并为它配置“TXT记录”。WAF会据此判断域名的所有权真正属于哪个用户。具体的配置方法请参见未配置子域名和TXT记录的影响。
  • 本地文件包含和远程文件包含是指什么? 您可以在WAF的防护事件中查看文件包含等安全事件,快速定位攻击源或对攻击事件进行分析。 文件包含是指程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。文件包含分为本地文件包含和远程文件包含,说明如下: 当被包含的文件在服务器本地时,称为本地文件包含。 当被包含的文件在第三方服务器时,称为远程文件包含。 文件包含漏洞是指通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,导致文件信息的泄露甚至注入了恶意代码。 有关查看防护日志的详细操作,请参见查看防护日志。 父主题: 产品咨询
  • 如何在华为云的云解析服务上配置TXT记录的值? 如果您在WAF中添加了使用了DDoS高防等相关代理的域名,请在您的DNS服务商处配置“子域名”和“TXT记录”,以避免其他用户在WAF中配置了相同的域名而对您的域名防护造成干扰。 如果您使用了华为云的云解析服务,配置TXT类型的记录值时,需要将TXT记录加上引号后粘贴在对应的文本框,例如,"37c795804124dd4a0dd88defff8941f",如图1所示。 图1 添加记录集 有关在华为云的云解析服务上配置子域名和TXT记录的详细操作,请参见未配置子域名和TXT记录的影响?。 父主题: 网站接入
共100000条