Ejemplo n.º 1
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('status', type=str, help='')
        parser.add_argument('tag', type=str, help='')
        parser.add_argument('limit', type=int, default=10, help='')
        parser.add_argument('from', type=int, default=1, help='')
        args = parser.parse_args()
        status = json.loads(args.get('status'))
        filters = status

        if args.get('tag'):
            filters = dict({'tag': args.get('tag')}, **filters)
        results = list(
            leakage_col.find(filters, {'code': 0, 'detail': 0}).sort('datetime', 1).limit(args.get('limit')).skip(
                args.get('limit') * (args.get('from') - 1)))
        total = leakage_col.count(filters)
        if total:
            msg = '共 {} 条记录'.format(total)
        else:
            msg = '暂无数据'
        data = {
            'msg': msg,
            'status': 200,
            'result': results,
            'total': total
        }
        return jsonify(data)
Ejemplo n.º 2
0
def keyword_report(tag_list):
    """
    create keyword report html content by given tags
    """
    tag_keyed_leakages = dict()
    for tag in tag_list:
        leakages = list(leakage_col.find({'tag': tag}))
        if leakages:
            tag_keyed_leakages[tag] = leakages
    html = report.render(tag_keyed_leakages=tag_keyed_leakages)
    return html
Ejemplo n.º 3
0
def render_items_by_tags(tag_list, report_path):
    """
    render items by given tags
    """
    tag_keyed_leakages = dict.fromkeys(tag_list)
    for tag in tag_keyed_leakages.keys():
        tag_keyed_leakages[tag] = list(leakage_col.find({'tag': tag}))
        if not tag_keyed_leakages[tag]:
            del tag_keyed_leakages[tag]
    html = report.render(tag_keyed_leakages=tag_keyed_leakages)

    with open(report_path, 'wb') as handle:
        handle.write(html.encode('utf-8'))
Ejemplo n.º 4
0
def render_top_items(top_nums, report_path):
    if top_nums < 0:
        #设置top_nums的默认值
        top_nums = 5
    tag_keyed_leakages = dict()
    for q in query_col.find():
        #print(q['tag'])
        tag_keyed_leakages[q['tag']] = list(leakage_col.find({'tag': q['tag']
                                                              }))[:top_nums]
    html = report.render(tag_keyed_leakages=tag_keyed_leakages)

    with open(report_path, 'wb') as handle:
        handle.write(html.encode('utf-8'))
Ejemplo n.º 5
0
    def patch(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str, help='')
        parser.add_argument('project', type=str, help='')
        parser.add_argument('ignore', type=int, choices=(0, 1), help='')
        parser.add_argument('security', type=int, choices=(0, 1), help='')
        parser.add_argument('desc', type=str, default='', help='')
        args = parser.parse_args()
        desc = base64.b64encode(
            args.get('desc').encode(encoding='utf-8')).decode()

        leakage_col.update({'_id': args.get('id')}, {'$set': {'security': int(
            args.get('security')), 'ignore': int(args.get('ignore')), 'desc': desc}})
        if not args.get('security'):
            if not args.get('ignore'):
                for leakage in leakage_col.find({'project': args.get('project')}):
                    leakage_col.update({'_id': leakage['_id']}, {
                        '$set': {'security': 0, 'ignore': 0, 'desc': desc}})
        if args.get('security') and args.get('ignore'):
            for leakage in leakage_col.find({'project': args.get('project')}):
                leakage_col.update({'_id': leakage['_id']}, {
                    '$set': {'security': 1, 'ignore': 1, 'desc': desc}})
        return jsonify({'status': 201, 'msg': '处理成功', 'result': []})
Ejemplo n.º 6
0
 def get(self, leakage_id):
     results = list(leakage_col.find(
         {'_id': leakage_id}, {'_id': 0, 'code': 0}))
     return jsonify({'status': 200, 'msg': '获取信息成功', 'result': results})