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" } ] }