From 406a5d83cd4193ab91b4118a05eb13e40966ddbe Mon Sep 17 00:00:00 2001 From: shangguanyanfei Date: Thu, 4 Jul 2019 18:35:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E9=87=8F=E6=97=A5=E5=BF=97=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E4=B8=8B=E6=96=B0=E5=A2=9E=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/log/NtcHttpObjScanResultLog.java | 160 +++++++ src/main/java/com/nis/util/Constants.java | 5 + .../ntc/HttpObjScanResultLogController.java | 175 +++++++ .../resources/messages/message_en.properties | 7 +- .../resources/messages/message_ru.properties | 11 +- .../messages/message_zh_CN.properties | 35 +- src/main/resources/nis.properties | 4 +- .../resources/sql/20190704/add_sys_menu.sql | 3 + .../views/log/ntc/httpObjScanResultList.jsp | 451 ++++++++++++++++++ 9 files changed, 831 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/nis/domain/log/NtcHttpObjScanResultLog.java create mode 100644 src/main/java/com/nis/web/controller/log/ntc/HttpObjScanResultLogController.java create mode 100644 src/main/resources/sql/20190704/add_sys_menu.sql create mode 100644 src/main/webapp/WEB-INF/views/log/ntc/httpObjScanResultList.jsp diff --git a/src/main/java/com/nis/domain/log/NtcHttpObjScanResultLog.java b/src/main/java/com/nis/domain/log/NtcHttpObjScanResultLog.java new file mode 100644 index 000000000..043e50407 --- /dev/null +++ b/src/main/java/com/nis/domain/log/NtcHttpObjScanResultLog.java @@ -0,0 +1,160 @@ +package com.nis.domain.log; + +import com.nis.util.excel.ExcelField; +/** + * + *文件离线扫描结果 实体类 + * + */ +public class NtcHttpObjScanResultLog extends BaseLogEntity { + + private static final long serialVersionUID = -7697668215327123848L; + + @ExcelField(title = "URL", sort = 8) + private String url; + + @ExcelField(title = "req_hdr_key", sort = 9) + private String reqHdrKey;// 请求头转储文件key + + @ExcelField(title = "req_hdr_file", sort = 10) + private String reqHdrFile; + + @ExcelField(title = "req_body_key", sort = 11) + private String reqBodyKey;// 请求体转储文件key + + @ExcelField(title = "req_body_file", sort = 12) + private String reqBodyFile; + + @ExcelField(title = "res_hdr_key", sort = 13) + private String resHdrKey;// 应答头转储文件key + + @ExcelField(title = "res_hdr_file", sort = 14) + private String resHdrFile; + + @ExcelField(title = "res_body_key", sort = 15) + private String resBodyKey;// 应答体转储文件key + + @ExcelField(title = "res_body_file", sort = 16) + private String resBodyFile; + + @ExcelField(title = "topic_name", sort = 16) + private String topicName;//原始消息所属的topic + + @ExcelField(title = "malware_id", sort = 16) + private Integer malwareId;//恶意文件命中病毒ID + + @ExcelField(title = "malware_type", sort = 16) + private String malwareType;//恶意病毒类型 + + @ExcelField(title = "malware_name", sort = 16) + private String malwareName;//恶意病毒名称 + + + + + public String getReqHdrFile() { + return reqHdrFile; + } + + public void setReqHdrFile(String reqHdrFile) { + this.reqHdrFile = reqHdrFile; + } + + public String getReqBodyFile() { + return reqBodyFile; + } + + public void setReqBodyFile(String reqBodyFile) { + this.reqBodyFile = reqBodyFile; + } + + public String getResHdrFile() { + return resHdrFile; + } + + public void setResHdrFile(String resHdrFile) { + this.resHdrFile = resHdrFile; + } + + public String getResBodyFile() { + return resBodyFile; + } + + public void setResBodyFile(String resBodyFile) { + this.resBodyFile = resBodyFile; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getReqHdrKey() { + return reqHdrKey; + } + + public void setReqHdrKey(String reqHdrKey) { + this.reqHdrKey = reqHdrKey; + } + + public String getReqBodyKey() { + return reqBodyKey; + } + + public void setReqBodyKey(String reqBodyKey) { + this.reqBodyKey = reqBodyKey; + } + + public String getResHdrKey() { + return resHdrKey; + } + + public void setResHdrKey(String resHdrKey) { + this.resHdrKey = resHdrKey; + } + + public String getResBodyKey() { + return resBodyKey; + } + + public void setResBodyKey(String resBodyKey) { + this.resBodyKey = resBodyKey; + } + + public String getTopicName() { + return topicName; + } + + public void setTopicName(String topicName) { + this.topicName = topicName; + } + + public Integer getMalwareId() { + return malwareId; + } + + public void setMalwareId(Integer malwareId) { + this.malwareId = malwareId; + } + + public String getMalwareType() { + return malwareType; + } + + public void setMalwareType(String malwareType) { + this.malwareType = malwareType; + } + + public String getMalwareName() { + return malwareName; + } + + public void setMalwareName(String malwareName) { + this.malwareName = malwareName; + } + + +} diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 2a56bbb95..8d7f15734 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -795,4 +795,9 @@ public final class Constants { * 管理员用户预警查询服务配置总量接口 */ public static final String CONFIG_BY_SERVICE = Configurations.getStringProperty("getConfigByService",""); + /** + * 文件扫描结果接口 + */ + public static final String NTC_HTTP_OBJSCAN_RESULT_LOGS = Configurations.getStringProperty("ntcHttpObjscanResultLogs",""); + } diff --git a/src/main/java/com/nis/web/controller/log/ntc/HttpObjScanResultLogController.java b/src/main/java/com/nis/web/controller/log/ntc/HttpObjScanResultLogController.java new file mode 100644 index 000000000..b4de5d354 --- /dev/null +++ b/src/main/java/com/nis/web/controller/log/ntc/HttpObjScanResultLogController.java @@ -0,0 +1,175 @@ +package com.nis.web.controller.log.ntc; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import com.nis.domain.FunctionServiceDict; +import com.nis.domain.Page; +import com.nis.domain.PageLog; +import com.nis.domain.SysUser; +import com.nis.domain.log.NtcHttpObjScanResultLog; +import com.nis.domain.maat.LogRecvData; +import com.nis.util.Constants; +import com.nis.util.DictUtils; +import com.nis.util.LogUtils; +import com.nis.util.httpclient.HttpClientUtil; +import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; + +@Controller +@RequestMapping("${adminPath}/log/ntc/httpObjScanResult") +public class HttpObjScanResultLogController extends BaseController { + + @RequestMapping(value = { "list", "" }) + public String list(@ModelAttribute("log") NtcHttpObjScanResultLog log, Model model, HttpServletRequest request, + HttpServletResponse response) { + try { + PageLog page = new PageLog(request, response); + Map params = new HashMap(); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + if (StringUtils.isNotBlank(log.getUrl())) { + String httpurl = StringEscapeUtils.unescapeHtml(log.getUrl()); + params.put("searchUrl", httpurl); + } + initLogSearchValue(log, params); + + if (StringUtils.isNotBlank(log.getdPort())) { + params.put("searchDPort", log.getdPort()); + } + if (StringUtils.isNotBlank(log.getsPort())) { + params.put("searchSPort", log.getsPort()); + } + if (null != log.getDeviceId()) { + params.put("searchDeviceId", log.getDeviceId()); + } + + List serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); + model.addAttribute("serviceList", serviceList); + + String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_OBJSCAN_RESULT_LOGS; + String recv = HttpClientUtil.getMsg(url, params, request); + + Gson gson = new GsonBuilder().create(); + + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + page.setCount(data.getCount()); + page.setLast(data.getLast()); + page.setList(data.getList()); + List list = page.getList(); + for (NtcHttpObjScanResultLog l : list) { + l.setFunctionId(log.getFunctionId()); + setLogAction(l, serviceList); + } + model.addAttribute("page", page); + } + } catch (Exception e) { + logger.error("查询失败", e); + addMessageLog(model, e.getMessage()); + LogUtils.saveLog(request, null, e, null); + } + + return "/log/ntc/httpObjScanResultList"; + } + + // 文件离线扫描结果 导出 + @RequestMapping(value = "exportHttpObjScanResult") + public void exportHttpObjScanResult(@ModelAttribute("log") NtcHttpObjScanResultLog log, Model model, String hColumns, String type, + HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + // export data info + List titleList = new ArrayList(); + Map> classMap = new HashMap>(); + Map dataMap = new HashMap(); + Map noExportMap = new HashMap(); + // --------------------------- + PageLog page = new PageLog(request, response); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + Map params = new HashMap(); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + if (StringUtils.isNotBlank(log.getUrl())) { + String httpurl = StringEscapeUtils.unescapeHtml(log.getUrl()); + params.put("searchUrl", httpurl); + } + initLogSearchValue(log, params); + + if (StringUtils.isNotBlank(log.getdPort())) { + params.put("searchDport", log.getdPort()); + } + if (StringUtils.isNotBlank(log.getsPort())) { + params.put("searchSport", log.getsPort()); + } + if (null != log.getDeviceId()) { + params.put("searchDeviceId", log.getDeviceId()); + } + + List serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); + model.addAttribute("serviceList", serviceList); + + String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_OBJSCAN_RESULT_LOGS; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + for (NtcHttpObjScanResultLog l : list) { + l.setFunctionId(log.getFunctionId()); + setLogAction(l, serviceList); + } + titleList.add("http_obj_scan_result"); + classMap.put("http_obj_scan_result", NtcHttpObjScanResultLog.class); + SysUser user = UserUtils.getUser(); + if (!user.isAdmin()) { + hColumns += ",scene_file,"; + } else { + hColumns += ","; + } + String cfgIndexInfoNoExport = ",action,cfg_id," + + hColumns; + noExportMap.put("http_obj_scan_result", cfgIndexInfoNoExport); + dataMap.put("http_obj_scan_result", list); + String timeRange = initLogMap(log, "http_obj_scan_result"); + noExportMap.put("timeRange", timeRange); + if ("csv".equals(type)) { + this._exportCsv(model, request, response, redirectAttributes, "http_obj_scan_result", titleList, classMap, + dataMap, noExportMap); + } else { + this._export(model, request, response, redirectAttributes, "http_obj_scan_result", titleList, classMap, dataMap, + noExportMap); + } + } catch (Exception e) { + logger.error("http_obj_scan_result export failed", e); + addMessage(redirectAttributes, "error", "export_failed"); + LogUtils.saveLog(request, null, e, null); + } + } +} diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 1bc42a14f..e4511443f 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1527,4 +1527,9 @@ url_group_manage=URL Group Manage range_cross=Found intersections between Server IP address and Client IP address app_ip_correlation=APP IP Correlation public_private_file_error=Public-private key mismatch -https_url_format_tip=URL(http[s]://xxx.xx) \ No newline at end of file +https_url_format_tip=URL(http[s]://xxx.xx) +http_obj_scan_result=File Scan +topic_name=TOPIC NAME +malware_id=MALWARE ID +malware_type=MALWARE TYPE +malware_name=MALWARE NAME \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 7d0b0e017..8ef5b5eb7 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -547,7 +547,7 @@ ftp_ip=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f dns_ip=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f DNS IP dns_domain=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u0430 DNS action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 -has_prohibit_delete= только удаляет незаконченные настройки и отменяет проверку конфигурации +has_prohibit_delete=\u807d\u890c\u82af\u8c22\u891c\u6cfb\u82af \u890d\u5199\u90aa\u8c22\u891f\u68b0\u890c \u85aa\u68b0\u87f9\u90aa\u6cfb\u82af\u85aa\u8914\u68b0\u85aa\u85aa\u8918\u68b0 \u85aa\u90aa\u890b\u890c\u8909\u82af\u6cc4\u6cfb\u61c8 \u61c8 \u82af\u890c\u5c51\u68b0\u85aa\u891f\u68b0\u890c \u950c\u8909\u82af\u80c1\u68b0\u8909\u6cfb\u890d \u6cfb\u82af\u85aa\u890e\u61c8\u8c10\u890d\u8909\u90aa\u8911\u61c8\u61c8 has_prohibit_nopass=\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430 has_prohibit_pass=\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430 multiple_keywords_tip=\u041c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432,\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435 \u0438\u0445 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 "Enter". @@ -1513,7 +1513,7 @@ admin_user_warn=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u04 interface_total=\u041e\u0431\u0449\u0435\u0435 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 service_total=\u041e\u0431\u0449\u0435\u0435 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0421\u0435\u0440\u0432\u0438\u0441\u0430 none_file_tip=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b%21 -the_same_ip_type=IP-\u0430\u0434\u0440\u0435\u0441 \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 \u0442\u0438\u043F. +the_same_ip_type=IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0442\u0438\u043f. src_ip_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 ip \u041a\u043b\u0438\u0435\u043d\u0442\u0430 dest_ip_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 ip \u0421\u0435\u0440\u0432\u0435\u0440\u0430 src_port_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 \u041f\u043e\u0440\u0442\u0430 \u041a\u043b\u0438\u0435\u043d\u0442\u0430 @@ -1530,4 +1530,9 @@ url_group_manage=URL Group Manage range_cross=\u041d\u0430\u0439\u0434\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430 app_ip_correlation=\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f ip-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 public_private_file_error=\u041d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e-\u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430. -https_url_format_tip=URL(http[s]://xxx.xx) \ No newline at end of file +https_url_format_tip=URL(http[s]://xxx.xx) +http_obj_scan_result=File Scan +topic_name=TOPIC NAME +malware_id=MALWARE ID +malware_type=MALWARE TYPE +malware_name=MALWARE NAME \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 48545390e..8db876e49 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -706,7 +706,7 @@ ir_type=\u590d\u7528\u7c7b\u578b dns_strategy_id=DNS\u7b56\u7565ID no_strategy=\u9ed8\u8ba4\u7b56\u7565 domain=\u57df\u540d -app_ip_config=APP\u534F\u8BAEIP\u914D\u7F6E +app_ip_config=APP\u534f\u8baeIP\u914d\u7f6e bytes=\u5b57\u8282 app_http_config=APP HTTP\u7279\u5f81 app_domain_config=APP\u57df\u540d\u7279\u5f81 @@ -1134,10 +1134,10 @@ label_proto_source=\u534f\u8bae\u6765\u6e90 label_behav_source=\u884c\u4e3a\u6765\u6e90 label_app_source=\u5e94\u7528\u6765\u6e90 packet=\u5305 -stream=\u6D41 +stream=\u6d41 protocol_menu=Protocol advanced=Advanced -protocol_identify=\u57FA\u7840\u534F\u8BAE +protocol_identify=\u57fa\u7840\u534f\u8bae MM_FILE_DIGEST=\u6587\u4ef6\u6458\u8981 NTC_ASN_IP=ASN NTC_STREAMING_MEDIA_URL=URL @@ -1255,9 +1255,9 @@ user_behavior_data=\u7528\u6237\u7edf\u8ba1 ip_behavior_data=\u7528\u6237IP\u7edf\u8ba1 not_valid_domain=%s\u4e0d\u662f\u4e00\u4e2a\u5408\u6cd5\u57df\u540d cert_not_match_domain=\u57df\u540d\u4e0e\u6240\u9009\u8bc1\u4e66\u4fe1\u606f\u4e0d\u7b26\u5408\uff01 -certificate_file_error=\u8BC1\u4E66\u683C\u5F0F\u9519\u8BEF +certificate_file_error=\u8bc1\u4e66\u683c\u5f0f\u9519\u8bef PXY_OBJ_TRUSTED_CA_CERT=\u53ef\u4fe1\u8bc1\u4e66 -crl_file_error=CRL\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF +crl_file_error=CRL\u6587\u4ef6\u683c\u5f0f\u9519\u8bef crl_issuer_error=crl\u6587\u4ef6\u7684issuer\u4e0e\u8bc1\u4e66\u6587\u4ef6\u7684issuer\u4e0d\u5339\u914d cert_name=\u8bc1\u4e66\u540d\u79f0 add_crl_file=Add CRL File @@ -1508,14 +1508,14 @@ effective=\u6709\u6548 admin_user_warn=\u7ba1\u7406\u5458\u7528\u6237\u9884\u8b66 interface_total=\u754c\u9762\u603b\u91cf service_total=\u670d\u52a1\u603b\u91cf -unapproved_all=\u5ba1\u6838\u4E0D\u901a\u8fc7\u6240\u6709\u914d\u7f6e! +unapproved_all=\u5ba1\u6838\u4e0d\u901a\u8fc7\u6240\u6709\u914d\u7f6e! delete_all=\u5220\u9664\u6240\u6709\u914d\u7f6e! -none_file_tip=\u8BF7\u9009\u62E9\u6587\u4EF6! +none_file_tip=\u8bf7\u9009\u62e9\u6587\u4ef6! the_same_ip_type=\u6e90IP\u4e0e\u76ee\u7684IP\u7684IP\u7c7b\u578b\u5fc5\u987b\u76f8\u540c -src_ip_pattern=\u6E90IP\u683C\u5F0F -dest_ip_pattern=\u76EE\u7684IP\u683C\u5F0F -src_port_pattern=\u6E90\u7AEF\u53E3\u683C\u5F0F -dest_port_pattern=\u76EE\u7684\u7AEF\u53E3\u683C\u5F0F +src_ip_pattern=\u6e90IP\u683c\u5f0f +dest_ip_pattern=\u76ee\u7684IP\u683c\u5f0f +src_port_pattern=\u6e90\u7aef\u53e3\u683c\u5f0f +dest_port_pattern=\u76ee\u7684\u7aef\u53e3\u683c\u5f0f url_group_configuration=URL \u5206\u7ec4\u914d\u7f6e dns_keyword_group_configuration=DNS \u5173\u952e\u5b57\u5206\u7ec4\u914d\u7f6e app_ip_correlation=APP IP \u901a\u8054 @@ -1525,7 +1525,12 @@ common_group=Common \u5206\u7ec4 dns_keyword_group_manage=DNS \u5173\u952e\u5b57\u5206\u7ec4\u7ba1\u7406 old_asn_group_manage=ASN \u5206\u7ec4 url_group_manage=URL \u5206\u7ec4 \u7ba1\u7406 -range_cross=\u6E90IP\u4E0E\u76EE\u7684IP\u8303\u56F4\u6709\u4EA4\u53C9 -app_ip_correlation=APP\u5173\u8054\u7279\u5F81IP\u914D\u7F6E -public_private_file_error=\u516C\u79C1\u94A5\u8BC1\u4E66\u4E0D\u5339\u914D -https_url_format_tip=URL(http[s]://xxx.xx) \ No newline at end of file +range_cross=\u6e90IP\u4e0e\u76ee\u7684IP\u8303\u56f4\u6709\u4ea4\u53c9 +app_ip_correlation=APP\u5173\u8054\u7279\u5f81IP\u914d\u7f6e +public_private_file_error=\u516c\u79c1\u94a5\u8bc1\u4e66\u4e0d\u5339\u914d +https_url_format_tip=URL(http[s]://xxx.xx) +http_obj_scan_result=\u6587\u4ef6\u626b\u63cf +topic_name=\u4e3b\u9898\u540d\u79f0 +malware_id=\u6076\u610f\u75c5\u6bd2ID +malware_type=\u6076\u610f\u75c5\u6bd2\u7c7b\u578b +malware_name=\u6076\u610f\u75c5\u6bd2\u540d\u79f0 \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index cd1a91733..3582c114f 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -520,4 +520,6 @@ trafficAppBpsTrend=v1/trafficAppBpsTrend cgiError=cannot connect to vpnserver,Connection to the server has failed,Specified object can not be found,Too many users,User already exists,Too many created users,The destination server is not a VPN server,The connection has been interrupted, #\u83b7\u53d6\u670d\u52a1\u914d\u7f6e\u603b\u91cf\u63a5\u53e3 getConfigByService=v1/getConfigByService -delAllCfg=v1/delAllConfig \ No newline at end of file +delAllCfg=v1/delAllConfig +#\u6587\u4ef6\u626b\u63cf\u63a5\u53e3 +ntcHttpObjscanResultLogs=v1/ntcHttpObjscanResultLogs \ No newline at end of file diff --git a/src/main/resources/sql/20190704/add_sys_menu.sql b/src/main/resources/sql/20190704/add_sys_menu.sql new file mode 100644 index 000000000..c2392a9fd --- /dev/null +++ b/src/main/resources/sql/20190704/add_sys_menu.sql @@ -0,0 +1,3 @@ + +# 新增日志检索->流量日志->文件扫描结果 +INSERT INTO `sys_menu` (`parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('1217', '0,1,152,1217,', 'http_obj_scan_result', '文件扫描', '200', '/log/ntc/httpObjScanResult', '', '', '1', '', '1', '2019-07-04 10:34:26', '1', '2019-07-04 10:34:26', '', '1', NULL, '0', '0', NULL); diff --git a/src/main/webapp/WEB-INF/views/log/ntc/httpObjScanResultList.jsp b/src/main/webapp/WEB-INF/views/log/ntc/httpObjScanResultList.jsp new file mode 100644 index 000000000..ae67f6c13 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/log/ntc/httpObjScanResultList.jsp @@ -0,0 +1,451 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + <spring:message code="http_obj_scan_result"></spring:message> + + + + + +
+ +

+ +

+ +
+
+
+
+ + + + + + + + + +
+ +
+
+
+ +
+ <%-- --%> + +
+
+
+
+
+ +
+ <%-- --%> + +
+
+
+ + + +
+
+
+ + +
+ href="javascript:;"> + + +
+
+ + + +
+
+ + <%--
+
+ + + + + + + +
+
--%> + +
+
+ + +
+
+ +
+
+ + + + + + + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+ +
+
+ +
+ + + + + +<%-- --%> +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + +
URL
+<%-- --%> + + +<%-- ${log.cfgId }${log.foundTime }${log.recvTime} + <%-- ${log.entranceId } + + + ${dic.itemValue} + + + --%> + ${log.entranceId } + ${log.url}${log.reqHdrKey } + + + ${fn:substring(log.reqHdrFile,0,20) } + + + + + http://${fn:substring(log.reqHdrFile,0,20) } + + + ${log.reqBodyKey } + + + ${fn:substring(log.reqBodyFile,0,20) } + + + + + http://${fn:substring(log.reqBodyFile,0,20) } + + + ${log.resHdrKey } + + + ${fn:substring(log.resHdrFile,0,20) } + + + + + http://${fn:substring(log.resHdrFile,0,20) } + + + ${log.resBodyKey } + + + ${fn:substring(log.resBodyFile,0,20) } + + + + + http://${fn:substring(log.resBodyFile,0,20) } + + + ${log.topicName}${log.malwareId}${log.malwareType}${log.malwareName}${log.capIp} + ${log.transProto } + + + ${dic.itemValue} + + + + + ${log.addrType } + + + ${dic.itemValue} + + + + ${log.dIp}${log.sIp}${log.dPort}${log.sPort} + ${log.deviceId } + + + ${device.itemValue} + + + + + ${log.linkId } + + + ${link.itemValue} + + + + + ${log.encapType } + + + ${encapType.itemValue} + + + + + ${log.direction } + + + ${direction.itemValue} + + + + ${log.innerSmac }${log.innerDmac } + ${log.streamDir } + + + ${streamType.itemValue} + + + + ${log.addrList }${log.serverLocate}${log.clientLocate}${log.sAsn}${log.dAsn}${log.sSubscribeId}${log.dSubscribeId}${log.userRegion}${log.sceneFile}
+
${page}
+
+
+
+
+
+ +