-
在 Cloudflare 仪表板中,前往 Security Settings(设置) 页面。
Go to Settings ↗ -
(可选)按 Detection tools(检测工具) 筛选。
-
开启 Malicious uploads detection(恶意上传检测)。
- 登录 Cloudflare 仪表板 ↗,并选择您的账户和域名。
- 前往 Security(安全性) > Settings(设置)。
- 在 Incoming traffic detections(传入流量检测) 下,开启 Malicious uploads(恶意上传)。
使用类似如下的 POST 请求:
Required API token permissions
At least one of the following token permissions is required:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/enable" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"使用 cloudflare_content_scanning 资源来为区域启用内容扫描。例如:
resource "cloudflare_content_scanning" "zone_content_scanning_example" {
zone_id = var.cloudflare_zone_id
enabled = true
}使用 Security Analytics 和 HTTP 日志,验证恶意内容对象是否被正确检测。
您可以使用 EICAR 反恶意软件测试文件 ↗ 来测试内容扫描(选择 ZIP 格式)。
或者,如下一步所述创建自定义规则,但使用 Log 操作,而不是 Block 等缓解操作。此规则将生成安全事件,便于验证配置。
创建自定义规则,阻止上传到应用中的已检测到的恶意内容对象。
例如,创建一条使用 Block 操作且具有以下表达式的自定义规则:
| 字段 | 运算符 | 值 |
|---|---|---|
| Has malicious content object | equals | True |
如果使用 Expression Editor,请输入以下表达式:
(cf.waf.content_scan.has_malicious_obj)规则操作:Block
此规则将匹配 Cloudflare 检测到可疑或恶意内容对象的请求。有关 WAF 内容扫描提供的字段列表,请参阅 内容扫描字段。
可选:与其他规则语言字段组合
您可以将上述表达式与规则语言的其他字段和函数组合。这样可以自定义规则范围,或将内容扫描与其他安全功能结合。例如:
-
以下表达式将匹配上传到特定端点的含恶意内容对象的请求:
字段 运算符 值 逻辑 Has malicious content object equals True And URI Path contains upload.php使用编辑器时的表达式:
(cf.waf.content_scan.has_malicious_obj and http.request.uri.path contains "upload.php") -
以下表达式将匹配机器人上传内容对象的请求:
字段 运算符 值 逻辑 Has content object equals True And Bot Score less than 10使用编辑器时的表达式:
(cf.waf.content_scan.has_obj and cf.bot_management.score lt 10)
更多示例请参阅 示例规则。
若要以默认配置未覆盖的方式检查上传内容,请添加自定义扫描表达式。
-
在 Cloudflare 仪表板中,前往 Security Settings(设置) 页面。
Go to Settings ↗ -
(可选)按 Detection tools(检测工具) 筛选。
-
在 Malicious uploads detection(恶意上传检测) > Configurations(配置) 下,选择编辑图标。
-
选择 Add content location(添加内容位置)。
-
在 Content location(内容位置) 中,输入自定义扫描表达式。例如:
lookup_json_string(http.request.body.raw, "file") -
选择 Save(保存)。
-
登录 Cloudflare 仪表板 ↗,并选择您的账户和域名。
-
前往 Security(安全性) > Settings(设置)。
-
在 Incoming traffic detections(传入流量检测) 下,选择 Malicious uploads(恶意上传)。
-
选择 Add content object location(添加内容对象位置)。
-
在 Content location(内容位置) 中,输入自定义扫描表达式。例如:
lookup_json_string(http.request.body.raw, "file") -
选择 Save(保存)。
使用类似如下的 POST 请求:
Required API token permissions
At least one of the following token permissions is required:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/payloads" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '[
{
"payload": "lookup_json_string(http.request.body.raw, \"file\")"
}
]'上述请求会将以下表达式添加到当前自定义扫描表达式列表中:
lookup_json_string(http.request.body.raw, "file")使用 cloudflare_content_scanning_expression 资源来添加自定义扫描表达式。例如:
resource "cloudflare_content_scanning_expression" "my_custom_scan_expression" {
zone_id = var.cloudflare_zone_id
payload = "lookup_json_string(http.request.body.raw, \"file\")"
}更多信息请参阅 自定义扫描表达式。