From eac40b14e041a5c36bb9e3c67110ca86cd97d1ae Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 28 十一月 2023 09:32:42 +0800
Subject: [PATCH] fix(漏洞修复): 11月24日扫描

---
 /dev/null                                   |  643 ----------------------------------------------------------
 admin-web/src/views/error-log/index.vue     |    1 
 admin-web/src/views/components/myImport.vue |    2 
 admin-web/src/utils/base.js                 |    3 
 admin-web/src/views/error-page/401.vue      |    2 
 5 files changed, 5 insertions(+), 646 deletions(-)

diff --git a/admin-web/public/static/js/capturewrapper.js b/admin-web/public/static/js/capturewrapper.js
deleted file mode 100644
index 0b1b9a0..0000000
--- a/admin-web/public/static/js/capturewrapper.js
+++ /dev/null
@@ -1,226 +0,0 @@
-var savedPictureContent = '';
-var extendName = '';
-var captureObj = null;
-var downloadUrl = '/CaptureInstall.exe?';
-
-/*
-鐢ㄤ簬鍒濆鍖栫墰鐗涙埅鍥炬帶浠讹紝姝ゅ嚱鏁伴渶瑕佸湪椤甸潰鍔犺浇瀹屾垚鍚庣珛鍗宠皟鐢�
-鍦ㄦ鍑芥暟涓紝鎮ㄥ彲浠ヨ缃浉鍏崇殑鎴浘鐨刄I鎺у埗锛屽锛岀敾绗斿ぇ灏忋�佽竟妗嗛鑹茬瓑绛� 銆愯繖閮ㄥ垎淇℃伅鍦╪iuniucapture.js涓篃鏈夐粯璁ゅ�硷紝鐩存帴淇敼榛樿鍊间篃鍙� 銆�
-*/
-function InitCapture() {
-  if (isMacintosh()) {
-    downloadUrl = '/CaptureInstall.dmg?';
-  } else if (isLinux()) {
-    if (isMips()) {
-      downloadUrl = '/CaptureInstall_mips.deb?';
-    } else if (isaarch()) {
-      downloadUrl = '/CaptureInstall_aarch.deb?';
-    } else if (isloongarch()) {
-      downloadUrl = '/CaptureInstall_loongarch64.deb?';
-    } else {
-      downloadUrl = '/CaptureInstall.deb?';
-    }
-  }
-  captureObj = new NiuniuCaptureObject();
-  captureObj.NiuniuAuthKey = "niuniu";
-  //姝ゅ鍙互璁剧疆鐩稿叧鍙傛暟
-  captureObj.TrackColor = rgb2value(255, 0, 0);
-  captureObj.EditBorderColor = rgb2value(0, 0, 255);
-
-  //璁剧疆宸ュ叿鏍忕殑TOOLTIP
-  //captureObj.ToolTipText = "tipRectangle|tipCircle|tipArrow|tipBrush|tipGlitter|tipMosaic|tipText|tipUndo|tipSave|tipCancel|tipFinish|Finish";
-
-  //濡傛灉瑕佽缃澶栫殑鍙傛暟锛屽線濡備笅杩欎釜鏁扮粍涓鍔狅紝渚嬪瑕侀殣钘忔寚瀹氱殑鎸夐挳
-  //captureObj.More_Ext_Params[0] = "2,rectangle|text";
-
-  //璁剧疆鎺т欢鍔犺浇瀹屾垚浠ュ強鎴浘瀹屾垚鐨勫洖璋冨嚱鏁�
-  captureObj.FinishedCallback = OnCaptureFinishedCallback;
-  captureObj.PluginLoadedCallback = PluginLoadedCallback;
-  captureObj.VersionCallback = VersionCallback;
-
-  //鍒濆鍖栨帶浠�
-  captureObj.InitNiuniuCapture();
-}
-
-//鐢ㄤ簬杩斿洖鎺т欢鐨勭増鏈彿
-function VersionCallback(ver) {
-  //captureObj.Version;
-  //鍙互鍦ㄦ鏍规嵁鏈�鏂扮殑鐗堟湰鍙蜂笌鎺т欢杩斿洖鐨勭増鏈彿瀵规瘮锛屽喅瀹氭槸鍚﹁鎻愮ず鍗囩骇
-  //alert(ver);
-}
-
-/*
-褰撴帶浠舵垚鍔熷姞杞藉悗鍥炶皟鐨勭殑鍑芥暟锛屾偍鍙互鍦ㄦ鎺у埗鐩稿簲鐨刄I鏄剧ず
-*/
-function PluginLoadedCallback(success) {
-  if (success) {
-    console.log('鎴浘鎻掍欢鍔犺浇鎴愬姛')
-  }else{
-    console.log('鎴浘鎻掍欢鍔犺浇澶辫触')
-  }
-}
-
-//鏍规嵁鏄惁鏄疌hrome鏂扮増鏈潵鎺у埗涓嬭浇涓嶅悓鐨勬帶浠跺畨瑁呭寘
-function ShowDownLoad() {
-  $('#info').html('濡傛灉瓒呰繃5绉掓棤鍝嶅簲锛岃鐐规<a target="_blank" href="' + downloadUrl + '" + date.getMinutes() + date.getSeconds()">瀹夎</a>');
-}
-
-/*
-褰撴彁绀哄畨瑁呮帶浠跺悗锛岄渶瑕侀噸鏂板姞杞芥帶浠舵潵浣跨敤鎴浘锛�
-涔熸湁閮ㄥ垎鏄渶瑕佸埛鏂版祻瑙堝櫒鐨�
-*/
-function ReloadPlugin() {
-  captureObj.LoadPlugin();
-  $('#btnReload').hide();
-  $('#btnCapture').show();
-  if (captureObj.pluginValid()) {
-    $('#downloadNotice').hide();
-    $('#info').html("鎴浘鎺т欢宸茬粡瀹夎瀹屾瘯锛屾偍鍙互杩涜鎴浘浜嗐��");
-  } else {
-    var browserInfo = "鏌ョ湅鎺т欢鏄惁琚祻瑙堝櫒闃绘锛屾垨閫氳繃娴忚鍣ㄨ缃腑鐨勫姞杞介」鏌ョ湅NiuniuCapture鏄惁鍔犺浇骞舵甯歌繍琛�";
-    $('#info').html('鎴浘鎺т欢鏈兘璇嗗埆鍒帮紝璇锋寜濡備笅姝ラ妫�鏌�:<br/>1. 纭畾鎮ㄥ凡缁忎笅杞芥帶浠跺畨瑁呭寘骞舵甯稿畨瑁� <br/>2. ' + browserInfo
-      + '<br/>3. 鍒锋柊椤甸潰鎴栭噸鏂板惎鍔ㄦ祻瑙堝櫒璇曚笅<br/>4. 濡傛灉浠嶆棫涓嶈兘鎴浘锛屽嚭澶ф嫑鍚э細'
-      + '<a target="_blank" style="color:#ff0000;" class="btn" href="http://shang.qq.com/wpa/qunwpa?idkey=a9dab7a14df03d19a2833e6b5f17a33639027d06213cf61bdb7554b04492b6e5">涓�閿姞缇ゆ眰鍔�</a>');
-  }
-}
-
-/*
-鎴浘鍏ュ彛鍑芥暟锛岀敤浜庢帶鍒禪I鏍囩鐨勬樉绀�
-*/
-function StartCapture() {
-
-  $('#imgshow').hide();
-  $('#imgshow').attr('src', "./image/loading.gif?v=1");
-  var captureRet = Capture();
-  //浠庤繑鍥炲�兼潵瑙f瀽鏄剧ず
-  if (captureRet == emCaptureFailed) {
-    ShowDownLoad();
-  } else if (captureRet == emCaptureUnknown) {
-    $('#info').html('姝e湪鎴浘涓�, 濡傛灉瓒呰繃5绉掓棤鍝嶅簲锛岃鐐规<a target="_blank" href="' + downloadUrl + '" + date.getMinutes() + date.getSeconds()">瀹夎</a>');
-  }
-}
-
-/*
-姝ゅ嚱鏁版槸鏍规嵁鍦ㄦ祴璇曢〉闈笂鐨勪笉鍚岄�夐」鏉ヨ繘琛屾埅鍥撅紝鍦ㄥ疄闄呭簲鐢ㄤ腑锛屾偍鍙渶瑕佹牴鎹偍瀹為檯闇�瑕佺殑鎴浘妯″紡锛屼紶鍏ョ浉搴旂殑鍙傛暟鍗冲彲
-*/
-function Capture() {
-  var defaultName = "1.png"; //姝ゅ涓轰簡闃叉涓婁紶鐨勬暟鎹繃澶э紝寤鸿浣跨敤JPG鏍煎紡
-  var hideFlag = 0;
-  var autoFlag = 0;
-  var captureRet = true;
-  if (autoFlag == 0) {
-    return captureObj.DoCapture("1.png", hideFlag, 0, 0, 0, 0, 0);
-  } else {
-    autoFlag = $('#getimagefromclipboard').is(':checked') ? 4 : 1;
-    if (autoFlag == 4) {
-      return captureObj.DoCapture("", 0, 4, 0, 0, 0, 0);
-    }
-    autoFlag = $('#showprewindow').is(':checked') ? 3 : 1;
-    if (autoFlag == 3) {
-      //姝ゆ椂濡傛灉x, y, width, height鍏ㄤ负0锛屽垯琛ㄧず棰勬埅鍥剧獥鍙g偣鍑烩�滃紑濮嬫埅鍥锯�濇椂锛屾墜宸ュ厛鎶婂尯鍩�
-      //x, y, width, height鍏ㄤ负1锛屽垯琛ㄧず棰勬埅鍥剧獥鍙g偣鍑烩�滃紑濮嬫埅鍥锯�濇椂锛岃嚜鍔ㄦ埅鍙栨暣涓闈�
-      //鍏朵粬鎯呭喌锛屽垯鑷姩鎴彇 x, y, width, height 鎸囧畾鐨勫尯鍩�
-      return captureObj.DoCapture("1.png", hideFlag, 3, 0, 0, 0, 0);
-    }
-    autoFlag = $('#fullscreen').is(':checked') ? 2 : 1;
-    if (autoFlag == 2) {
-      return captureObj.DoCapture("1.png", hideFlag, 2, 0, 0, 0, 0);
-    } else {
-      return captureObj.DoCapture("1.png", hideFlag, 1, $('#xpos').val(), $('#ypos').val(), $('#width').val(), $('#height').val());
-    }
-  }
-}
-
-/*
-姝ゅ鏄埅鍥惧悗鐨勫洖璋冨嚱鏁帮紝鐢ㄤ簬灏嗘埅鍥剧殑璇︾粏淇℃伅鍙嶉鍥炴潵锛屼綘闇�瑕佽皟鏁存鍑芥暟锛屽畬鎴愬浘鍍忔暟鎹殑浼犺緭涓庢樉绀�
-*/
-function OnCaptureFinishedCallback(type, x, y, width, height, extinfo, content, localpath) {
-  if (type < 0) {
-    //闇�瑕侀噸鏂板畨瑁呮帶浠�
-    // ShowDownLoad();
-    return;
-  }
-
-  //extinfo鏄竴涓墿灞曠殑json瀛楃涓诧紝鍙互鍙栧嚭鏉ュ悗杩涜瑙f瀽锛岀洰鍓嶇敤浜庤繑鍥炵偣鍑诲畬鎴愭埅鍥剧殑鎸夐挳鍚嶇О锛岀敤浜庢墿灞曟寜閽�
-  //姣斿锛歿"btnname":"finish"}
-  $('#show').hide();
-  switch (type) {
-    case 1: {
-      $('#info').html('鎴浘瀹屾垚锛� x:' + x + ',y:' + y + ',widht:' + width + ',height:' + height);
-      UploadCaptureData(content, localpath);
-      break;
-    }
-    case 2: {
-      $('#info').html('鎮ㄥ彇娑堜簡鎴浘');
-      break;
-    }
-    case 3: {
-      $('#info').html('鎮ㄤ繚瀛樹簡鎴浘鍒版湰鍦帮細 x:' + x + ',y:' + y + ',widht:' + width + ',height:' + height + ' ' + localpath);
-      UploadCaptureData(content, localpath);
-      break;
-    }
-    case 4: {
-      if (content != '') {
-        $('#info').html('浠庡壀璐存澘鑾峰彇鍒颁簡鎴浘锛� ' + localpath);
-        UploadCaptureData(content, localpath);
-      } else {
-        $('#info').html('浠庡壀璐存澘鑾峰彇鍥剧墖澶辫触銆�');
-      }
-      break;
-    }
-  }
-}
-
-//鎺у埗涓婁紶
-function UploadCaptureData(content, localpath) {
-  savedPictureContent = content;
-
-  //鑾峰彇鍥剧墖鐨勬墿灞曞悕
-  var pos = localpath.lastIndexOf('.');
-  extendName = localpath.substr(pos + 1);
-  if (extendName == '') {
-    extendname = 'jpg';
-  }
-  $('#show').html('鎴浘宸茬粡瀹屾垚锛岃鐐瑰嚮');
-  $('#show').show();
-  var autoUpload = $("#autoupload").attr("checked") == "checked" ? 1 : 0;
-  if (autoUpload) {
-    UploadData();
-  } else {
-    $('#btnUpload').show();
-  }
-}
-
-
-/*
-瀹為檯涓婁紶鍥惧儚鏁版嵁鐨勫嚱鏁帮紝姝ゅ涓昏鏄皢BASE64鐨勫浘鍍忔暟鎹紝閫氳繃AJAX鐨勬柟寮廝OST鍒版湇鍔″櫒淇濆瓨鎴愭枃浠讹紝骞朵笖鏄剧ず鍦ㄩ〉闈笂
-*/
-function UploadData() {
-  $('#show').html('鎴浘瀹屾垚锛屾鍦ㄤ笂浼狅紝璇风◢鍚�...');
-  $('#btnUpload').hide();
-  //涓婁紶鐨勬暟鎹櫎浜嗗浘鐗囧锛岃繕鍙互鍖呭惈鑷繁闇�瑕佷紶閫掔殑鍙傛暟
-  var data = "userid=test111&extendname=" + extendName + "&picdata=" + encodeURIComponent(savedPictureContent);
-
-  $.ajax({
-    type: "POST",
-    url: "./upload.php",
-    dataType: "json",
-    data: data,
-    success: function (obj) {
-      if (obj.code == 0) {
-        $('#show').html('涓婁紶鎴愬姛锛屽浘鐗囧湴鍧�锛�' + obj.info);
-        $('#imgshow').show();
-        $('#imgshow').attr('src', obj.info);
-      } else {
-        $('#show').html('涓婁紶澶辫触 :' + obj.info);
-      }
-    },
-    error: function () {
-      $('#show').html('鐢变簬缃戠粶鍘熷洜锛屼笂浼犲け璐ャ��');
-    }
-  });
-}
-
-function TestSetWatermarkPicture() {
-  captureObj.SetWatermarkPicture("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");
-}
diff --git a/admin-web/public/static/js/niuniucapture.js b/admin-web/public/static/js/niuniucapture.js
deleted file mode 100644
index 8aea5cf..0000000
--- a/admin-web/public/static/js/niuniucapture.js
+++ /dev/null
@@ -1,643 +0,0 @@
-/*******************************************************************************
- 鐗涚墰鎴浘鐨凧S閮ㄥ垎鐨勬牳蹇冩祦绋嬪皝瑁呭湪姝ゆ枃浠朵腑锛岀粷澶ч儴鍒嗘儏鍐典笅锛屾偍涓嶉渶瑕佷慨鏀规鏂囦欢涓殑JS鍐呭锛屽畠宸茬粡鍖呭惈浜嗗湪鎵�鏈夋祻瑙堝櫒涓婂簲鐢�
- 鐗涚墰鎴浘鎵�闇�瑕佺殑鎵�鏈変唬鐮侊紝鎮ㄥ彧闇�瑕佸幓淇敼capturewrapper.js锛屽皢鐩稿簲鐨勫嚱鏁颁慨鏀规垚涓庢偍鐨刄I鍖归厤鐨勫嵆鍙�
- *******************************************************************************/
-
-/*******************************************************************************/
-//璁剧疆鎴浘鐨勫弬鏁�
-var emPensize = 1;		//璁剧疆鐢荤瑪澶у皬
-var emDrawType = 2;		//璁剧疆鏄吘璁鏍艰繕鏄�360椋庢牸 0锛� 鑵捐椋庢牸   1锛� 360椋庢牸
-var emTrackColor = 3;		//鑷姩璇嗗埆鐨勮竟妗嗙殑棰滆壊
-var emEditBorderColor = 4;	//鏂囨湰杈撳叆鐨勮竟妗嗛鑹�
-var emTransparent = 5;		//宸ュ叿鏍忕殑閫忔槑搴�
-var emWindowAware = 6;		//璁剧疆鏄惁绂佺敤闅忕潃DPI鏀惧ぇ
-var emSetSaveName = 8;		//璁剧疆淇濆瓨鏃剁殑寮�濮嬫枃瀛�     鍏嶈垂鐗堟湰鏃犳晥
-var emSetMagnifierBkColor = 9; //璁剧疆鏀惧ぇ闀滅殑鑳屾櫙鑹诧紝涓嶈缃垯閫忔槑
-var emSetMagnifierLogoText = 10; //璁剧疆鏀惧ぇ闀滀笂鐨凩OGO瀛楃锛屽彲鎻愮ず蹇嵎閿紝濡傦細 鐗涚墰鎴浘(CTRL + SHIFT + A)     鍏嶈垂鐗堟湰鏃犳晥
-var emSetWatermarkPictureType = 20;						//璁剧疆姘村嵃鐨勭被鍨�
-var emSetWatermarkPicturePath = 21;						//璁剧疆姘村嵃鐨勮矾寰�
-var emSetWatermarkTextType = 22;						//璁剧疆姘村嵃鏂囧瓧鐨勭被鍨�
-var emSetWatermarkTextValue = 23;                       //璁剧疆姘村嵃鏂囧瓧鐨勫瓧绗︿覆
-var emSetMosaicType = 24;               //鎸囧畾椹禌鍏嬬殑绫诲瀷锛�1涓虹煩褰紝2涓虹敾绾�
-var emSetTooltipText = 25;               //鐢ㄤ簬璁剧疆宸ュ叿鏍忓浘鏍囩殑TOOLTIP鏂囧瓧
-var emSetMoreInfo = 26;							//璁剧疆棰濆鐨勪俊鎭紝鐢ㄤ簬鐗规畩闇�姹�
-var connectTimes = 0 //閾炬帴娆℃暟
-var maxConnectTimes = 9 //鏈�澶ч噸杩炴鏁�
-/*******************************************************************************/
-
-
-var emClosed = 1;
-var emConnected = 2;
-var emConnecting = 3;
-
-var emCaptureSuccess = 0;
-var emCaptureFailed = 1;
-var emCaptureUnknown = 2;
-
-var emCmdReady = -1;
-var emCmdCapture = 0;
-var emCmdSaveFile = 1;
-
-
-function isMacintosh() {
-  return navigator.platform.indexOf('Mac') > -1;
-}
-
-function isLinux() {
-  return navigator.platform.indexOf('Linux') > -1;
-}
-
-function isMips() {
-  return navigator.platform.indexOf('mips') > -1;
-}
-
-function isaarch() {
-  return navigator.platform.indexOf('aarch') > -1;
-}
-
-function isloongarch() {
-  return navigator.platform.indexOf('loongarch') > -1;
-}
-
-function rgb2value(r, g, b) {
-  return r | g << 8 | b << 16;
-}
-
-var captureObjSelf = null;
-
-function onpluginLoaded() {
-  captureObjSelf.pluginLoaded(false);
-}
-
-function NiuniuCaptureObject() {
-  var self = this;
-  captureObjSelf = this;
-  this.PenSize = 2;
-  this.DrawType = 0;
-  this.TrackColor = rgb2value(255, 0, 0);
-  this.EditBorderColor = rgb2value(255, 0, 0);
-  this.Transparent = 255;
-  this.WindowAware = 1;
-  this.MosaicType = 1;
-  this.SaveName = "娴嬭瘯淇濆瓨";
-  this.MagnifierLogoText = "娴嬭瘯鎴浘";
-  this.WatermarkPictureType = "2|100|100|400|400|20";
-  this.WatermarkPicturePath = "";
-  this.WatermarkTextType = "2|100|100|100|40|20|0|150|30|80,55,55,55";
-  this.WatermarkTextValue = "";
-  this.NiuniuAuthKey = "";
-  this.ToolTipText = "";  //tipRectangle|tipCircle|tipArrow|tipBrush|tipGlitter|tipMosaic|tipText|tipUndo|tipSave|tipCancel|tipFinish|txtFinish
-  this.MoreInfo = "1,100|300|600";
-
-  this.More_Ext_Params = new Array();
-
-  this.useCustomizedProtoco = true;   //鏄惁浣跨敤娴忚鍣ㄨ嚜瀹氫箟鍗忚鍔爓ebsocket
-
-  this.IsWaitCustomizedCallBack = false;
-  this.autoConnectAfterPageLoad = true;
-  this.IsFirstConnect = true;
-  this.IsEverConnected = false;
-  this.reconnectTryTime = 0;
-  this.TimeIntervalID = -1;
-  this.ReceivedEchoBack = false;
-
-  this.Version = "1.0.0.0";
-  this.hostPort = "30101,30102";
-  this.hostPortIndex = 0;
-  this.CaptureName = "NiuniuCapture";
-  this.NiuniuSocket = null;
-  this.connectState = emClosed;
-
-  this.SocketTimeStamp = new Date().getTime();
-  this.TimeOutID = -1;
-
-  this.FinishedCallback = null;
-  this.PluginLoadedCallback = null;
-  this.VersionCallback = null;
-  this.OnConnectFailed = function (isReconnect) {
-    self.WriteLog(isReconnect ? "reconnect failed, the capture control process is exit." : "connect failed at the first time.");
-  }
-
-  this.LoadPlugin = function () {
-    var obj = $('#capturecontainer');
-    if (obj.length < 1) {
-      $("body").append('<div id="capturecontainer" style="height:0px;width:0px;"></div>');
-      obj = $('#capturecontainer');
-    }
-    obj.html('');
-    obj.html('<object id="niuniuCapture" type="application/x-niuniuwebcapture" width="0" height="0"><param name="onload" value="onpluginLoaded" /></object>');
-
-    var iframeObj = $('startCaptureFrame');
-    if (iframeObj.length < 1) {
-      $("body").append('<iframe id="startCaptureFrame" style="display:none;"></iframe>');
-    }
-  }
-
-  this.niuniuCapture = function () {
-    return document.getElementById('niuniuCapture');
-  }
-
-  this.addEvent = function (obj, name, func) {
-    if (obj.attachEvent) {
-      obj.attachEvent("on" + name, func);
-    } else {
-      obj.addEventListener(name, func, false);
-    }
-  }
-
-  this.pluginValid = function () {
-    try {
-      if (self.niuniuCapture().valid) {
-        return true;
-      }
-    } catch (e) {
-    }
-    return false;
-  }
-
-  this.OnCaptureFinished = function (x, y, width, height, content, localpath) {
-    self.OnCaptureFinishedEx(1, x, y, width, height, "", content, localpath);
-  }
-
-  this.OnCaptureFinishedEx = function (type, x, y, width, height, info, content, localpath) {
-    //浜ょ粰涓婂眰鍘诲鐞嗘埅鍥惧畬鎴愬悗鐨勪簨椤�
-    if (self.FinishedCallback != null) {
-      self.FinishedCallback(type, x, y, width, height, info, content, localpath);
-    } else {
-      alert("鎴浘瀹屾垚鐨勪簨浠舵湭缁戝畾锛屽皢涓嶈兘瀵瑰浘鐗囪繘琛屽鐞嗭紝璇锋寚瀹欶inishedCallback鍥炶皟鍑芥暟");
-    }
-  }
-
-  this.pluginLoaded = function (fromWebsocket) {
-    if (!fromWebsocket && !self.pluginValid()) {
-      if (self.PluginLoadedCallback != null) {
-        self.PluginLoadedCallback(false);
-      }
-      return false;
-    }
-
-    self.GetVersion();
-    if (self.PluginLoadedCallback != null) {
-      self.PluginLoadedCallback(true);
-    }
-
-    if (!self.pluginValid()) {
-      return false;
-    }
-    //姝ゅ嚱鏁板繀闇�璋冪敤锛屼紶閫掓纭殑鍙傛暟锛屼笖蹇呴渶鍏堜簬鍏朵粬鍑芥暟璋冪敤
-    self.niuniuCapture().InitCapture(self.NiuniuAuthKey);
-
-    self.niuniuCapture().InitParam(emPensize, self.PenSize);
-    self.niuniuCapture().InitParam(emDrawType, self.DrawType);
-    self.niuniuCapture().InitParam(emTrackColor, self.TrackColor);
-    self.niuniuCapture().InitParam(emEditBorderColor, self.EditBorderColor);
-    self.niuniuCapture().InitParam(emTransparent, self.Transparent);
-
-    self.niuniuCapture().InitParam(emSetSaveName, self.SaveName);
-    self.niuniuCapture().InitParam(emSetMagnifierLogoText, self.MagnifierLogoText);
-    self.niuniuCapture().InitParam(emSetMosaicType, self.MosaicType);
-
-    //璁剧疆宸ュ叿鏍忎笂鐨勬寜閽甌OOLTIP
-    self.niuniuCapture().InitParam(emSetTooltipText, self.ToolTipText);
-
-    //self.niuniuCapture().InitParam(emSetMoreInfo, self.MoreInfo);
-
-    for (i = 0; i < self.More_Ext_Params.length; i++) {
-      self.niuniuCapture().InitParam(emSetMoreInfo, self.More_Ext_Params[i]);
-    }
-
-
-    //niuniuCapture().InitParam(23, "娴嬭瘯鏂囧瓧.");
-    //姝ASE64瀛楃涓茶〃绀虹墰鐗涢粯璁ょ殑姘村嵃鍥剧墖锛屽彲浠ユ浛鎹�
-    // niuniuCapture().InitParam(21, "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");
-    //娉細浠ヤ笂璁剧疆LOGO鍙婁繚瀛樺悕鐨勬帴鍙o紝鍏嶈垂鐗堟湰鏃犳晥
-
-    //娣诲姞鎺т欢鐨勪簨浠剁洃鍚�
-    self.addEvent(self.niuniuCapture(), 'CaptureFinishedEx', self.OnCaptureFinishedEx);
-    //浠ヤ笅杩欎釜浜嬩欢涓昏鏄敤浜庡吋瀹规棫鐨勬祻瑙堝櫒鎺т欢鐨勪簨浠堕�氱煡
-    self.addEvent(self.niuniuCapture(), 'CaptureFinished', self.OnCaptureFinished);
-  }
-
-  this.SetWatermarkPicture = function (watermarPicData) {
-    self.WatermarkPicturePath = watermarPicData;
-    //璁剧疆娴嬭瘯鐨勬按鍗板浘鐗囩殑Base64瀛楃涓诧紝姝ゆ搷浣滃簲璇ユ槸鍦ㄩ〉闈㈠姞杞戒腑澶勭悊姣旇緝鍚堥��
-    if (!self.pluginValid())
-      return;
-    self.niuniuCapture().InitParam(emSetWatermarkPicturePath, self.WatermarkPicturePath);
-    self.niuniuCapture().InitParam(emSetWatermarkPictureType, self.WatermarkPictureType);
-  }
-
-  this.SetWatermarkText = function (watermarkText) {
-    self.WatermarkTextValue = watermarkText;
-    //璁剧疆娴嬭瘯鐨勬按鍗版枃瀛楋紝姝ゆ搷浣滃簲璇ユ槸鍦ㄩ〉闈㈠姞杞戒腑澶勭悊姣旇緝鍚堥��
-    if (!self.pluginValid())
-      return;
-    //nShowType|nMinWidth|nMinHeight|nVerticalInterval|nOffset|nFontSize|nIsBold|nTextWidth|nTextHeight|colorText
-    self.niuniuCapture().InitParam(emSetWatermarkTextValue, self.WatermarkTextValue);
-    self.niuniuCapture().InitParam(emSetWatermarkTextType, self.WatermarkTextType);
-  }
-
-
-  this.SavePicture = function (savename) {
-    if (self.pluginValid()) {
-      self.niuniuCapture().SavePicture(savename);
-    }
-  }
-
-  this.GetCursorPosition = function () {
-    if (self.pluginValid()) {
-      var val = self.niuniuCapture().GetCursorPosition();
-      return val;
-    }
-    return "";
-  }
-
-  this.NewCaptureParamObject = function (defaultpath, hideCurrWindow, autoCaptureFlag, x, y, width, height) {
-    var obj = new Object();
-    obj.CmdType = 1;
-    obj.IsGBK = 0;				//鏄惁鏄疓BK缂栫爜锛岃繖鏍蜂細娑夊強鍒扮紪鐮佽浆鎹�
-    obj.AuthKey = self.NiuniuAuthKey;  //
-    obj.Pensize = self.PenSize;		//璁剧疆鐢荤瑪澶у皬
-    obj.DrawType = self.DrawType;			//璁剧疆鏄吘璁鏍艰繕鏄�360椋庢牸
-    obj.TrackColor = self.TrackColor;		//鑷姩璇嗗埆鐨勮竟妗嗙殑棰滆壊
-    obj.EditBorderColor = self.EditBorderColor;	//鏂囨湰杈撳叆鐨勮竟妗嗛鑹�
-    obj.Transparent = self.Transparent;		//宸ュ叿鏍忕殑閫忔槑搴�
-    obj.SetSaveName = self.SaveName;									//璁剧疆淇濆瓨鏃剁殑寮�濮嬫枃瀛�
-    obj.SetMagnifierLogoText = self.MagnifierLogoText;						//璁剧疆鏀惧ぇ闀滀笂鐨凩OGO瀛楃
-    obj.SetWatermarkPictureTypeEx = self.WatermarkPictureType;						//璁剧疆姘村嵃鐨勭被鍨�
-    obj.SetWatermarkPicturePath = self.WatermarkPicturePath;						//璁剧疆姘村嵃鐨勮矾寰�
-    obj.SetWatermarkTextTypeEx = self.WatermarkTextType;							//璁剧疆姘村嵃鏂囧瓧鐨勭被鍨�
-    obj.SetWatermarkTextValue = self.WatermarkTextValue;						//璁剧疆姘村嵃鏂囧瓧
-    obj.MosaicType = self.MosaicType;          //璁剧疆椹禌鍏嬬殑绫诲瀷
-    obj.SetToolbarText = self.ToolTipText;
-    obj.MoreInfo = this.MoreInfo;
-    if (self.More_Ext_Params.length > 0) {
-      obj.more_ext_count = self.More_Ext_Params.length;
-      for (i = 0; i < self.More_Ext_Params.length; i++) {
-        switch (i) {
-          case 0:
-            obj.more_ext0 = self.More_Ext_Params[i];
-            break;
-          case 1:
-            obj.more_ext1 = self.More_Ext_Params[i];
-            break;
-          case 2:
-            obj.more_ext2 = self.More_Ext_Params[i];
-            break;
-          case 3:
-            obj.more_ext3 = self.More_Ext_Params[i];
-            break;
-          case 4:
-            obj.more_ext4 = self.More_Ext_Params[i];
-            break;
-          case 5:
-            obj.more_ext5 = self.More_Ext_Params[i];
-            break;
-          case 6:
-            obj.more_ext6 = self.More_Ext_Params[i];
-            break;
-          case 7:
-            obj.more_ext7 = self.More_Ext_Params[i];
-            break;
-          case 8:
-            obj.more_ext8 = self.More_Ext_Params[i];
-            break;
-          case 9:
-            obj.more_ext9 = self.More_Ext_Params[i];
-            break;
-        }
-      }
-    }
-
-    //浠ヤ笅鏄埅鍥炬椂浼犻�掔殑鍙傛暟
-    obj.DefaultPath = defaultpath;
-    obj.HideCurrentWindow = hideCurrWindow;
-    obj.AutoCaptureFlag = autoCaptureFlag;
-    obj.x = x;
-    obj.y = y;
-    obj.Width = width;
-    obj.Height = height;
-    return obj;
-  }
-
-  this.DoCapture = function (name, hide, AutoCapture, x, y, width, height) {
-    if (self.IsNeedCustomizedProtocol()) {
-      return self.DoCaptureForCustomize(name, hide, AutoCapture, parseInt(x), parseInt(y), parseInt(width), parseInt(height));
-    }
-
-    if (!self.pluginValid()) {
-      return emCaptureFailed;
-    }
-    self.niuniuCapture().Capture(name, hide, AutoCapture, x, y, width, height);
-    return emCaptureSuccess;
-  }
-
-  this.InitNiuniuCapture = function () {
-    self.LoadPlugin();
-    setTimeout("captureObjSelf.InitWebSocketAndBindCallback();", 200);
-  }
-
-  this.InitWebSocketAndBindCallback = function () {
-    if (!self.autoConnectAfterPageLoad || !self.IsNeedCustomizedProtocol()) {
-      return;
-    }
-    self.connectHost();
-  }
-
-  this.getNextPort = function () {
-    //init port params flag
-    //杩涜鎷嗗垎澶勭悊 self.hostPort;
-    var portArray = self.hostPort.split(",");
-    if (portArray.length < 1) {
-      alert("鏈嶅姟绔彛涓虹┖");
-      return 30101;
-    }
-    if (self.hostPortIndex < 0) {
-      self.hostPortIndex = 0;
-    }
-    if (self.hostPortIndex > portArray.length - 1) {
-      self.hostPortIndex = portArray.length - 1;
-    }
-    var nPort = parseInt(portArray[self.hostPortIndex]);
-    self.hostPortIndex++;
-    if (self.hostPortIndex > portArray.length - 1) {
-      self.hostPortIndex = 0;
-    }
-    return nPort;
-  }
-
-  this.connectHost = function () {
-    connectTimes++
-    if (self.NiuniuSocket != null) {
-      self.WriteLog("connectHost NiuniuSocket is not null, return.");
-      return;
-    }
-    clearTimeout(self.TimeOutID);
-    self.connectState = emConnecting;
-
-    if(connectTimes>maxConnectTimes){
-      clearInterval(self.TimeIntervalID);
-    }
-    try {
-      var wshosts = ['127.0.0.1', 'localhost'];
-      for (var i in wshosts) {
-        try {
-          var host = "ws://127.0.0.1:" + self.getNextPort() + "/" + self.CaptureName;
-          self.NiuniuSocket = new WebSocket(host);
-          break;
-        } catch (ee) {
-          var ggg = 0;
-        }
-      }
-
-      //OutputLog('Socket Status: '+socket.readyState);
-      self.NiuniuSocket.onopen = function (evt) {
-        self.NiuniuSocket.send('0' + self.SocketTimeStamp);
-        self.WriteLog("NiuniuSocket.onopen.");
-        clearTimeout(self.TimeOutID);
-      }
-
-      self.NiuniuSocket.onmessage = function (msg) {
-        var str = "";
-        str = msg.data;
-        var id = str.substr(0, 1);
-        var arg1 = str.substr(1);
-        clearTimeout(self.TimeOutID);
-        if (id == "0") {
-          self.hostPortIndex--;
-          //琛ㄧず杩炴帴鎴愬姛锛屾鏃跺簲璇ユ彁绀哄彲浠ユ埅鍥句簡
-          self.connectState = emConnected;
-          self.pluginLoaded(true);
-          self.IsEverConnected = true;
-          self.IsFirstConnect = false;
-          if (self.IsWaitCustomizedCallBack) {
-            setTimeout("captureObjSelf.SendReadyRecvData();", 3);
-          }
-          self.WriteLog("connect sucess.");
-          self.ReceivedEchoBack = true;
-          clearInterval(self.TimeIntervalID);
-          self.TimeIntervalID = setInterval("captureObjSelf.LoopEchoMessage()", 3000);
-        }
-        if (id == "1") {
-          //瑙f瀽娑堟伅
-          var _aoResult = eval("(" + arg1 + ")");
-          self.ReceivedEchoBack = true;
-          if (_aoResult.command == "echo") {
-            self.WriteLog("received echo");
-            return;
-          }
-          self.WriteLog("received capturedata.");
-          if (_aoResult.command == "version") {
-            self.WriteLog(_aoResult.Ver);
-            self.VersionCallback(_aoResult.Ver);
-          } else {
-            self.OnCaptureFinishedEx(_aoResult.Type, _aoResult.x, _aoResult.y, _aoResult.Width, _aoResult.Height, _aoResult.Info, _aoResult.Content, _aoResult.LocalPath);
-          }
-        }
-      }
-
-      self.NiuniuSocket.onclose = function (evt) {
-        self.OnWebSocketError("self.NiuniuSocket.onclose." + evt.data);
-      }
-      self.NiuniuSocket.onerror = function (evt) {
-        self.OnWebSocketError("self.NiuniuSocket.onerror." + evt.data);
-      };
-
-    } catch (e) {
-      self.OnWebSocketError("connect exception." + e.message);
-    }
-  }
-
-  this.WriteLog = function (txt) {
-    //鍐欐棩蹇�
-    try {
-      if(txt==='connect failed at the first time.'){
-        self.PluginLoadedCallback(false);
-      }
-    } catch (e) {
-
-    }
-  }
-
-  this.OnWebSocketError = function (type) {
-    //濡傛灉涓嶅浜庤繛鎺ユ垚鍔熺姸鎬侊紝璇存槑涓嶆槸鏂紑杩炴帴锛岃�屾槸杩炴帴澶辫触
-    var isConnectedFailed = false;
-    if (self.connectState != emConnected) {
-      isConnectedFailed = true;
-    }
-    self.WriteLog(type);
-    self.ReceivedEchoBack = false;
-    self.connectState = emClosed;
-
-    if (self.NiuniuSocket != null) {
-      self.NiuniuSocket.close();
-    }
-
-    self.NiuniuSocket = null;
-    clearTimeout(self.TimeOutID);
-    clearInterval(self.TimeIntervalID);
-
-    if (isConnectedFailed) {
-      if (self.IsFirstConnect) {
-        self.IsFirstConnect = false;
-        if (self.OnConnectFailed != null) {
-          self.OnConnectFailed(false);
-        }
-        return;
-      }
-
-      if (self.IsEverConnected) {
-        self.reconnectTryTime++;
-        //閫氱煡杩炴帴杩炴帴鏂紑
-        if (self.reconnectTryTime > 3) {
-          self.IsEverConnected = false;
-          self.reconnectTryTime = 0;
-          if (self.OnConnectFailed != null) {
-            self.OnConnectFailed(true);
-          }
-          return;
-        }
-      }
-    }
-    if(connectTimes>maxConnectTimes){
-      return
-    }
-    self.TimeOutID = setTimeout("captureObjSelf.connectHost();", 800);
-  }
-
-  this.LoopEchoMessage = function () {
-    if (!self.ReceivedEchoBack) {
-      self.OnWebSocketError("this.LoopEchoMessage, !self.ReceivedEchoBack");
-      self.ReceivedEchoBack = false;
-      clearInterval(self.TimeIntervalID);
-      self.TimeIntervalID = setInterval("captureObjSelf.LoopEchoMessage()", 3000);
-      return;
-    }
-    self.ReceivedEchoBack = false;
-    clearTimeout(self.TimeOutID);
-    if (self.connectState != emConnected) {
-      clearInterval(self.TimeIntervalID);
-      return;
-    }
-    var obj = new Object();
-    obj.command = "echo";
-    self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj)));
-  }
-
-  this.SendReadyRecvData = function () {
-    self.WriteLog("SendReadyRecvData.");
-    var obj = self.NewCaptureParamObject("", 0, 0, 0, 0, 0, 0);
-    obj.CmdType = -1;
-    self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj)));
-  }
-
-  this.DoCaptureForCustomize = function (name, hide, AutoCapture, x, y, width, height) {
-    var obj = self.NewCaptureParamObject(name, hide, AutoCapture, x, y, width, height);
-    try {
-      //鍚姩瀹㈡埛绔紝鎴栬�呴�氳繃websocket鍘诲彂閫佹暟鎹�
-      if (self.connectState == emConnected) {
-        var json = JSON.stringify(obj);
-        self.NiuniuSocket.send('1' + encodeURIComponent(json));
-      } else {
-        //棣栨鍚姩鏃讹紝涓嶆敮鎸佹按鍗帮紝鍚﹀垯浼氳繃闀�
-        obj.SetWatermarkPicturePath = "";
-        //obj.SetWatermarkTextValue = "";
-        console.log(obj)
-        var json = JSON.stringify(obj);
-        self.WriteLog(json.length);
-        var newUrl = self.CaptureName + "://" + encodeURIComponent(json);
-        if (isLinux()) {
-          newUrl = self.CaptureName + "://xxxx";
-        }
-        self.WriteLog(newUrl.length);
-
-        //鍚姩瀹㈡埛绔�
-        $('#startCaptureFrame').attr('src', newUrl);
-
-        self.IsWaitCustomizedCallBack = true;
-        self.connectHost();
-        return emCaptureUnknown;
-      }
-
-      return emCaptureSuccess;
-    } catch (e) {
-      alert('message' + e.message);
-    }
-    return emCaptureUnknown;
-  }
-
-
-  this.IsNeedCustomizedProtocol = function () {
-    if (isMacintosh()) {
-      return true;
-    }
-    if (!self.useCustomizedProtoco) {
-      return false;
-    }
-
-    if (self.pluginValid()) {
-      return false;
-    }
-
-    try {
-      var agent = window.navigator.userAgent.toLowerCase();
-      var isIE = agent.indexOf("compatible") > -1 && agent.indexOf("msie") > -1;
-      if (isIE) {
-        return false;
-      }
-
-      var isIE11 = agent.indexOf('trident') > -1 && agent.indexOf("rv:11.0") > -1;
-      if (isIE11) {
-        return false;
-      }
-      var isQQBrowser = agent.indexOf("qqbrowser") != -1;
-      //if(isQQBrowser)
-      //{
-      //    return false;
-      //}
-      var isUBrowser = agent.indexOf("ubrowser") != -1;
-      if (isUBrowser) {
-        return false;
-      }
-
-      //濡傛灉鏄痜irefox 涓斿湪50鐗堟湰浠ヤ笂锛屽垯闇�瑕�
-      var isFirefox = agent.indexOf("firefox") != -1;
-      if (isFirefox) {
-        return true;
-      }
-
-      var isEdge = agent.indexOf("edge") != -1;
-      if (isEdge) {
-        return true;
-      }
-
-      var isChrome = agent.indexOf("chrome") != -1;
-      if (isChrome) {
-        return true;
-      }
-      return false;
-    } catch (e) {
-      self.WriteLog("IsNeedCustomizedProtocol exception: " + e.message);
-    }
-    return true;
-  }
-
-  this.GetVersion = function () {
-    if (self.IsNeedCustomizedProtocol()) {
-      if (self.connectState != emConnected) {
-        return;
-      }
-      var obj = new Object();
-      obj.command = "version";
-      self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj)));
-      return;
-    }
-
-    if (!self.pluginValid()) {
-      return;
-    }
-    var verSion = self.niuniuCapture().GetVersion();
-    self.VersionCallback(verSion);
-    self.WriteLog(verSion);
-  }
-}
diff --git a/admin-web/src/utils/base.js b/admin-web/src/utils/base.js
index d4980c0..b2f7f05 100644
--- a/admin-web/src/utils/base.js
+++ b/admin-web/src/utils/base.js
@@ -34,7 +34,8 @@
       if (obj.url.indexOf('http') !== 0) {
         url = SettingIplatform.ftpUrl + url
       }
-      window.open(routeUrl.href + '?url=' + encodeURIComponent(url) + '&docName=' + encodeURIComponent(encodeURIComponent(obj.fileName)), '_blank')
+      const newWindow = window.open(routeUrl.href + '?url=' + encodeURIComponent(url) + '&docName=' + encodeURIComponent(encodeURIComponent(obj.fileName)), '_blank')
+      if (newWindow) newWindow.opener = null
     } else {
       Message.warning('鏂囦欢鏍煎紡涓嶆敮鎸侀瑙堬紒')
     }
diff --git a/admin-web/src/views/components/myImport.vue b/admin-web/src/views/components/myImport.vue
index 400e608..48f95a1 100644
--- a/admin-web/src/views/components/myImport.vue
+++ b/admin-web/src/views/components/myImport.vue
@@ -14,7 +14,7 @@
       <el-col :span="24">
         <el-form>
           <el-form-item v-if="templateSettings.templateUrl != null" label="涓嬭浇妯℃澘锛�" prop="lon">
-            <a class="blue-txt" style="color:#409EFF" :href="templateSettings.templateUrl" target="_blank">{{ templateSettings.templateName }}</a>
+            <a class="blue-txt" style="color:#409EFF" :href="templateSettings.templateUrl" target="_blank" rel="noreferrer noopener">{{ templateSettings.templateName }}</a>
           </el-form-item>
           <el-form-item label="閫夊彇鏂囦欢锛�" prop="lon">
             <el-upload
diff --git a/admin-web/src/views/error-log/index.vue b/admin-web/src/views/error-log/index.vue
index ac9ced8..58b8eb5 100644
--- a/admin-web/src/views/error-log/index.vue
+++ b/admin-web/src/views/error-log/index.vue
@@ -8,6 +8,7 @@
       increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately
       Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.
       <a
+        rel="noreferrer noopener"
         target="_blank"
         class="link-type"
         href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html"
diff --git a/admin-web/src/views/error-page/401.vue b/admin-web/src/views/error-page/401.vue
index bf736bc..0473bfa 100644
--- a/admin-web/src/views/error-page/401.vue
+++ b/admin-web/src/views/error-page/401.vue
@@ -4,7 +4,7 @@
     <el-row>
       <el-col :span="12">
         <h1 class="text-jumbo text-ginormous">Oops!</h1>
-        gif鏉ユ簮<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> 椤甸潰
+        gif鏉ユ簮<a href="https://zh.airbnb.com/" target="_blank" rel="noreferrer noopener">airbnb</a> 椤甸潰
         <h2>浣犳病鏈夋潈闄愬幓璇ラ〉闈�</h2>
         <h6>濡傛湁涓嶆弧璇疯仈绯讳綘棰嗗</h6>
         <ul class="list-unstyled">

--
Gitblit v1.9.1