申请UserKey
在线监测API概述
360在线检测开放平台API提供了一种新的接口调用方式,允许被360授予权限的第三方应用360手机在线监测服务器来检测提交的手机软件安全性(目前支持.apk,.sis,.sisx格式)。在线检测API说明文档下载(v1.1测试版)
API接口格式
合作方与360手机在线检测服务器之间,使用标准Http协议通信。合作方通过Http Post方式,将需要检测的内容发送至360手机在线检测服务器。Http Post的URL格式如下所示:
http://scan.shouji.360.cn/ScanUpload?UserKey=XXXXXXXX&ReqType=Pkg&RspType=Sync。其中,
UserKey: 合作方唯一Key值(注册时由360分配)
ReqType: 请求类型。取值为:
Pkg -表示检测单个软件。(post的内容为单个软件包)
Blk -表示检测批量软件。(post的内容为一个zip格式压缩包,压缩包里是所有待检测的软件包)
Url -表示Url地址检测。(post的内容为纯文本文件,文件的每行为单个软件的下载URL地址)
RspType: 应答方式。取值为:
Sync -表示同步方式,Server在Http Post的应答报文里显示结果。
Async -表示异步方式,Server在Http Post的应答报文里只显示ok/error。通过合作方登记的邮件地址,将分析结果发送到邮箱。
每个合作方,对应其唯一的允许权限图。
例如,合作方A的权限图为:
ReqTypeRspType
Pkg AvailSync Avail
Blk AvailAsync Avail
Url Avail
合作方B的权限图为:
ReqTypeRspType
Pkg AvailSync Avail
Blk AvailAsync Avail
Url Avail
分析结果格式
软件包分析结果为xml格式的纯文本,采用GBK编码。
配置文件以作为根节点,内部包含n个节点(ReqType为Pkg时,n=1;ReqType为Blk和Url时,n>=1)。每个节点包含以下tag:
tag名称含义
state分析完成状态,取值为:1: 分析成功0: 分析失败
name软件包的名称
url对ReqType为Url的请求,其值为下载地址对ReqType为Pkg的请求,其值为空对ReqType为Blk的请求,其值为空
size软件包的大小(单位:字节)
type软件包类型(目前支持android安装包和symbian安装包),取值为:sis: Symbian安装包apk: Android安装包etc: 其它类型包
sign软件检测结果描述,取值为:- 通过- 不通过- 审核中
desc附加描述信息
示例如下:
1
360MobileSafe.apk
1255670
apk
通过
示例
用法1:
要求:合作方系统为Uinx/Linux,支持curl命令工具。
在命令行,执行如下的命令检测软件(可集成入shell脚本):
#curl -F "file=@/360onlinescan/apk/xxxx.apk " -o /360onlinescan/apk/xxxx.apk.xml "http://scan.shouji.360.cn/ScanUpload?UserKey=XXXXXXXX& ReqType=Pkg&RspType=Sync"
用法2:
要求:合作方系统支持php(版本>=4.0.2)
下面是php客户端程序代码:
if($argc != 2)
{
echo "Usage: $argv[0] \n";
exit(1);
}
$filename = $argv[1];
if(!file_exists($filename))
{
echo "Error: [$filename] doesn't exist!\n";
exit(1);
}
set_time_limit(0);
$postfile = array("file"=>"@$filename",);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://scan.shouji.360.cn/ScanUpload?UserKey=XXXXXXXX&ReqType=Pkg&RspType=Sync');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfile);
curl_exec($ch);
curl_close($ch);
?>