POST-病毒检查
介绍如何调用接口在针对文本内容的进行病毒查杀。
接口介绍
病毒检查接口用于发送内容进行病毒检查相关的安全审查。
请求方式
POST
接口地址
/skg/v1/swg/antivirus/<mode>请求参数
| 参数名称 | 参数位置 | 是否必须 | 描述 |
|---|---|---|---|
| <mode> | URL参数 | 是 | 调用模式。
|
| <文本请求模式> | URL参数 | 是 | 指定文本内容的请求模式为同步或异步。 |
元数据参数
支持文本内容的扫描
metadata参数定义
| 参数名 | 类型 | 适用状态 | 说明 |
|---|---|---|---|
| queryID | String(必选) | 同步和异步 | 与此请求关联的事件查询ID,保持唯一。若请求无事件生成则无法查询到事件详情。 注: queryid的值对应于第三方云服务中的流量UUID。 |
| filename | String(可选) | 同步 | 文件名 - 可做根据文件名设置的策略匹配 |
| md5 | String(可选) | 同步和异步 | 文件MD5值,用于记录和缓存加速。支持MD5和文档一同送检,也支持仅送检MD5。 |
| uploadtype | String(必选) | 异步 | 只限于异步。支持AWS S3、阿里云OSS、腾讯云COS、Swift等云存储,以及本地文件和下载URL。
|
| callback_url | String(可选) | 异步 | 只限于异步模式填写回调函数的url |
| objectInfo |
Dict(可选) |
异步 | 只限于异步模式并使用对象存储时使用。参考下面表格查看objectInfo具体参数配置 |
| 参数名 | 类型 | 说明 |
| 以下参数适用于s3(aws) | ||
| s3Region | String(可选) | 使用s3时的region name,如果运行在EC2上并使用AWS IAM role,则以下三项可省略 |
| accessKey | String(可选) | 使用s3时的access key |
| secretKey | String(可选) | 使用s3时的secret key |
| endpointUrl | String(可选) | 使用s3时的endpoint url |
| s3Bucket | String(必选) | 使用s3时的对象bucket |
| s3Key | String(必选) | 使用s3时的对象key(文件名) |
|
以下参数适用于swift(openstack) |
||
|
X-Auth-Token |
String(可选) | 使用swift时的认证token,如果提供有效的X-Auth-Token,则以下三项可省略 |
|
authUrl |
String(可选) | 使用swift时的认证url |
| X-Auth-User | String(可选) | 使用swift时的认证user |
| X-Auth-Key | String(可选) | 使用swift时的认证key(密码) |
| objectUrl | String(必选) |
使用swift时完整的对象访问路径 |
|
以下参数适用于oss(阿里云) |
||
|
ossEndpoint |
String(可选) |
使用oss时的endpoint |
|
accessKeyId |
String(可选) |
使用oss时的accessKeyId |
|
accessKeySecret |
String(可选) |
使用oss时的accessKeySecret |
|
ossBucket |
String(必选) |
使用oss时的对象bucket |
|
ossKey |
String(必选) |
使用oss时的对象key(文件名) |
|
以下参数适用于cos(腾讯云) |
||
|
cosRegion |
String(必选) |
使用cos时的region name |
|
secretId |
String(必选) |
使用cos时的secretId |
|
secretKey |
String(必选) |
使用cos时的secretKey |
|
cosBucket |
String(必选) |
使用cos时的对象bucket |
|
cosKey |
String(必选) |
使用cos时的对象key |
Python请求示例 - 病毒检查(同步模式 )
# -*- coding: utf-8 -*- from requests.packages.urllib3.exceptions import InsecureRequestWarning from ucwi_config import UCWIConfig from ucwi_auth import get_headers import requests import json import uuid requests.packages.urllib3.disable_warnings(InsecureRequestWarning) api = "/skg/v1/swg/antivirus/sync" url = "{0}{1}".format(UCWIConfig.base_url, api) file_path = "test.txt" metadata = { # 与此次请求关联的ID,需要唯一,异步时用于事件查询 "queryID": str(uuid.uuid4()), } headers = get_headers() data = {"metadata": json.dumps(metadata)} fd = open(file_path) files = { "request": fd } response = requests.post(url, headers=headers, data=data, files=files, verify=False) fd.close() if response.status_code != 200: print("Bad request, response code:", response.status_code) print(response.text) else: result = response.json() if result["responseCode"] != 200: print("Bad request, response code:", result["responseCode"]) print(result["message"]) else: if result["hasVirus"]: print(" virus info:") for info in result["virus_info"]: print(json.dumps(info, indent=2).encode('utf-8').decode('raw_unicode_escape')) else: print("no virus.")
Python请求示例 - 病毒检查(异步模式 )
以下示例为使用Python代码调用接口,以在异步模式下,对文件内容进行病毒检查。
# -*- coding: utf-8 -*- from requests.packages.urllib3.exceptions import InsecureRequestWarning from ucwi_config import UCWIConfig from ucwi_auth import get_headers import requests import json import uuid requests.packages.urllib3.disable_warnings(InsecureRequestWarning) api = "/skg/v1/swg/antivirus/async" url = "{0}{1}".format(UCWIConfig.base_url, api) file_path = "test.txt" metadata = { "queryID": str(uuid.uuid4()), # 此次请求关联的UUID,需要唯一,在异步模式下,用于事件查询 "uploadtype": "file", "callback_url": UCWIConfig.callback_url + "/virus" } headers = get_headers() data = {"metadata": json.dumps(metadata)} fd = open(file_path) files = { "request": fd } response = requests.post(url, headers=headers, data=data, files=files, verify=False) fd.close() if response.status_code != 200: print("Bad request, response code:", response.status_code) print(response.text) else: result = response.json() print(result["message"])
返回参数
| 名称 | 描述 |
|---|---|
| hasVirus | 如返回值为True则代表检查到病毒。如果未发现病毒,则返回值显示为false。 |
| queryID | 与此请求关联的事件查询ID,保持唯一。若请求无事件生成则无法查询到事件详情。 |
| result | 检查结果 |
| responseCode | 返回的状态码 |
| localDetectedTime | 本地检测事件 |
| virus_info.VirusName | 病毒名称 |
| virus_info.VirusType | 病毒类型 |
| virus_info.VirusID | 病毒ID |
| virus_info.VirusDesc | 病毒解释 |
返回示例
{
"hasVirus": true, //如果未发现病毒,此处显示为false
"queryID": "5f08ec98-c948-4e71-b85a-f564e7081572",
"result": 0,
"responseCode": 200,
"localDetectedTime": "2020-02-12T16:10:09.673582",
"virus_info": [ //如果未发现病毒,此处显示为空值[]
{
"VirusName": "HEUR/AGEN.1044737",
"VirusType": "heuristic",
"VirusID": 0,
"VirusDesc": "Contains suspicious code HEUR/AGEN.1044737"
}
]
}