ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、数据库的表结构 所有数据表均采用**Innodb**,字符编码集为**utf8** ### verify表(身份校验表) | Field | Type | Null | Key | Default | Extra | |-------------------|-------------|------|-----|---------|-------| | email | varchar(32) | NO | PRI | NULL | | | verification_code | char(6) | NO | | NULL | | | time | bigint(12) | NO | | NULL | | ### user表(用户表) | Field | Type | Null | Key | Default | Extra | |--------------------|------------------|------|-----|---------|----------------| | user_id | bigint(16) | NO | PRI | NULL | auto_increment | | email | varchar(32) | NO | | NULL | | | password | text | NO | | NULL | | | token_key | char(16) | NO | | NULL | | | token_time_end | bigint(12) | NO | | NULL | | | nickname | varchar(16) | NO | | NULL | | | head_url | varchar(1024) | NO | | NULL | | | file_num | int(10) unsigned | NO | | NULL | | | file_protected_num | int(10) unsigned | NO | | NULL | | | file_scan_num | int(10) unsigned | NO | | NULL | | | file_leak_num | int(10) unsigned | NO | | NULL | | | register_time | bigint(12) | NO | | NULL | | | register_date | varchar(10) | NO | | NULL | | ### apk表(应用表) | Field | Type | Null | Key | Default | Extra |说明| |--------------------|---------------|------|-----|---------|----------------|-----| | apk_id | bigint(20) | NO | PRI | NULL | auto_increment | apk的ID| | user_id | bigint(16) | NO | | NULL | | user的ID| | apk_name | varchar(1024) | NO | | NULL | |唯一识别apk的名称,是一串定长的关于用户邮箱的哈希值| | apk_real_name | varchar(32) | NO | | NULL | | apk的展示名称| | upload_time | bigint(12) | NO | | NULL | | 上传时间,距1970-1-1的秒数| | upload_date | varchar(10) | NO | | NULL | | 上传时间,Y-m-d格式| | upload | tinyint(1) | NO | | NULL | | 上传标志,1完成,0未完成| | protected | tinyint(1) | NO | | NULL | | 加固标志,1完成,0未加固| | scanned | tinyint(1) | NO | | NULL | | 扫描标志,1完成,0未完成| | app | varchar(1024) | NO | | NULL | | 源apk的下载url | report | varchar(1024) | YES | | NULL | | pdf版报告的url | app_protect | varchar(1024) | YES | | NULL | | 加固后的apk下载url | report_protect | varchar(1024) | YES | | NULL | | pdf (需要修改源码文件) ### report表(报告表) | Field | Type | Null | Key | Default | Extra | 说明 | |------------------|----------------|------|-----|---------|---------------|-----------------------------| | count | bigint(20) | NO | PRI | NULL | auto_increment| | | apk\_id | bigint(20) | NO | | NULL | | | | identify | char(5) | NO | | NULL | | | | result | text | NO | | NULL | | | | level | tinyint(1) | NO | | NULL | | | select result, level where apk_id = XXX and identify = 'XXX'; ## 二、数据交换格式(json) 前后端数据交换格式(后端由php/python) ``` { state_message: xxxx //状态码,0为正常,其他的是错误 data: [] //具体的各种数据 } ``` python的扫描结果返回格式 ``` { state_message: xxxx info:{ apk_name: //apk的唯一标识(string) file_size: //文件大小,单位MB(float) md5: //针对apk文件计算的32位的md5散列值(string) package_name: //包名(string) main_activity: //主活动(string) min_sdk: //最小sdk(int) target_sdk: //目标sdk(int) permission:[{ {level:'xxx',data:'xxx'}, {level:'xxx',data:'xxx'}, ...... {level:'xxx',data:'xxx'}] }] //menifest中的权限内容 //(level-string,data-string),有顺序要求 activity: //(string) service: //(string) broadcast_recv: //(string) content_provider: //(string) leak:[ {level:xxx,data:'xxx'}, {level:xxx,data:'xxx'}, ...... {level:xxx,data:'xxx'}] } //总共有70项,大小为70的数组 //(level-string,data-string),有顺序要求 } ``` python返回格式的进一步说明 **permission** ``` 每个应用申请权限的数量都不尽相同,所以permission的json数组的长度是不固定的,需要遍历manifest文件,取出所有的权限。详细的权限体制说明请参看《扫描项目详述》中的《权限信息检测》。 level-string类型 'xxx' //level的返回值请参考《扫描项目详述》中的《权限信息检测》 //所有权限对应的权限字符串,按照那个值进行返回 data-string类型 'xxxx' //权限的字符串,比如ACCESS_NETWORK_STATE [注意] 需要仔细阅读《扫描项目详述》中的《权限信息检测》中的内容。 ``` **leak** ``` 根据《扫描概述》中《安全指数模型》70项的风险项的扫描情况,将leak设计成为存储70个对象的数组,长度为70,需要注意的逻辑顺序必须与文档中70个风险项的排列顺序保持一致。 level-string类型-返回以下7种情况中的1种 'safe' //安全 'remind' //提醒 'warning' //警告 'low' //低危 'middle' //中危 'high' //高危 'NF' //暂时无法实现该项的扫描功能(No Function) date-string类型-返回以下2种情况中的1种 'xxxx' //扫描结果,需要定位具体的漏洞点,描述漏洞发生的位置 'NULL' //返回'NULL'字符串 [注意] level=safe可以返回'NULL'字符串,或者level=NF也可以返回'NULL',注意不要返回空的内容,而是内容为'NULL'字符串。 ```