Files
tuend-work 4478491d73 z
2025-11-13 07:41:56 +07:00

1 line
17 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{1846:function(t,e,n){"use strict";n.r(e);var a=n(3954),r=n(2704);for(var s in r)["default"].indexOf(s)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(s);n(3701);var i=n(0),o=n(3703),u=n.n(o),l=Object(i.a)(r.default,a.a,a.b,!1,null,null,null);"function"==typeof u.a&&u()(l),e.default=l.exports},2123:function(t,e,n){var a=n(51),r=n(56),s=n(509),i=n(510).UNSUPPORTED_Y;a&&("g"!=/./g.flags||i)&&r.f(RegExp.prototype,"flags",{configurable:!0,get:s})},2668:function(t,e,n){"use strict";var a=n(723),r=n(950);t.exports=a("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},2704:function(t,e,n){"use strict";n.r(e);var a=n(2705),r=n.n(a);for(var s in a)["default"].indexOf(s)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(s);e.default=r.a},2705:function(t,e,n){"use strict";n(10),n(6),n(8),n(11),n(25);var a=n(1),r=n(20);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=a(n(36));n(69),n(13),n(15),n(34),n(7),n(2123),n(5),n(16),n(14),n(2668),n(23),n(18),n(21),n(79);var i=a(n(42)),o=a(n(2)),u=a(n(37)),l=function(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!==r(t)&&"function"!=typeof t)return{default:t};var n=f(e);if(n&&n.has(t))return n.get(t);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if("default"!==i&&Object.prototype.hasOwnProperty.call(t,i)){var o=s?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=t[i]}a.default=t,n&&n.set(t,a);return a}(n(3700)),c=a(n(1903)),d=n(28);function f(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return(f=function(t){return t?n:e})(t)}function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}var p,g,b,v,h,_,y={beforeRouteEnter:(_=(0,u.default)(s.default.mark((function t(e,n,a){var r,i,o,u,c;return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.path.startsWith("/admin/")?null:(0,d.State)("app.domain"),i=e.params,o=i.domainProp,u=i.subdomainProp,c={domain:o||r,subdomain:u||null},t.next=5,l.getModSecurity(c);case 5:l.getLog(c),a();case 7:case"end":return t.stop()}}),t)}))),function(t,e,n){return _.apply(this,arguments)}),api:[{command:l.getModSecurity,bind:"data"},{command:l.getLog,bind:"log"},{command:l.searchDomains,bind:"domains"}],components:{InputTextEditor:c.default},props:{domainProp:{type:String,required:!1,default:function(){return this.$domain}},subdomainProp:{type:String,required:!1,default:""}},data:function(){return{flags:{rule:"On"},ids:[],newId:"",select:[],message:"",domain:this.domainProp,fullLog:!1,lines:"100",maxTime:"10",subdomain:this.subdomainProp}},computed:{userLevel:function(){return this.$route.path.startsWith("/user/")},domainParam:function(){return this.userLevel?this.$domain:this.$api.domains.includes(this.domain)?this.domain:null},subdomainParam:function(){return this.domainParam&&this.subdomain||null},log:function(){return this.$api.log.lines.map(this.getLogData)},logLoading:function(){return this.$state.commands.MODSECURITY_LOG.isLoading},haveSubdomains:function(){return Object.keys(this.$api.data.subdomain_select.options).length>0},subdomainOptions:function(){return function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?m(Object(n),!0).forEach((function(e){(0,o.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({"":this.$gettext("Main Domain...")},this.$api.data.subdomain_select.options)}},watch:{domainParam:"loadData",subdomainParam:"loadData"},created:function(){this.flags.rule=this.$api.data.flags.SecRuleEngine,this.ids=this.$api.data.SecRuleRemoveById.map((function(t){return{id:t}}))},methods:{loadLog:(h=(0,u.default)(s.default.mark((function t(){var e;return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.getLog({domain:this.domainParam,subdomain:this.subdomainParam,lines:this.fullLog?null:this.lines||"2000",max_time:this.maxTime});case 2:return(e=t.sent).summary.aborted&&this.$notifications.error({title:"Timeout",content:this.$gettextInterpolate(this.$gettext("Loading was aborted due to %{ time }s timeout. <br/>%{returned} lines was returned of %{ requested } requested"),e.summary),extended:!0}),t.abrupt("return",e);case 5:case"end":return t.stop()}}),t,this)}))),function(){return h.apply(this,arguments)}),loadData:(v=(0,u.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.loadLog(),t.next=3,l.getModSecurity({domain:this.domainParam,subdomain:this.subdomainParam});case 3:this.flags.rule=this.$api.data.flags.SecRuleEngine,this.ids=this.$api.data.SecRuleRemoveById.map((function(t){return{id:t}}));case 5:case"end":return t.stop()}}),t,this)}))),function(){return v.apply(this,arguments)}),showMessage:function(t){this.message=JSON.stringify(t,null,2),this.$dialog("MODSECURITY_MESSAGE_DIALOG").open()},addRule:(b=(0,u.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.newId){t.next=8;break}return t.next=3,l.addSkip({id:this.newId,domain:this.domainParam,subdomain:this.subdomainParam});case 3:if(!(t.sent instanceof Error)){t.next=6;break}return t.abrupt("return");case 6:this.ids.push({id:this.newId}),this.newId="";case 8:case"end":return t.stop()}}),t,this)}))),function(){return b.apply(this,arguments)}),removeRules:(g=(0,u.default)(s.default.mark((function t(){var e;return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=this.select.map((function(t){return t.id})),t.next=3,l.removeSkip({select:e,domain:this.domainParam,subdomain:this.subdomainParam});case 3:if(!(t.sent instanceof Error)){t.next=6;break}return t.abrupt("return");case 6:this.ids=this.ids.filter((function(t){var n=t.id;return!e.includes(n)})),this.select=[];case 8:case"end":return t.stop()}}),t,this)}))),function(){return g.apply(this,arguments)}),saveFlags:function(){l.saveFlags({SecRuleEngine:this.flags.rule,domain:this.domainParam,subdomain:this.subdomainParam})},getLogData:function(t){if(void 0===t.audit_data){var e=t.transaction.messages.map((function(t){return{message:t.message,rule:t.details.ruleId}}));return{item:t,time:t.transaction.time_stamp,host:t.transaction.request.headers.host||t.transaction.request.headers.Host,uri:t.transaction.request.uri,ip:t.transaction.client_ip,messages:e,rules:(0,i.default)(new Set(e.map((function(t){return t.rule})).filter(Boolean)))}}var n=t.audit_data.messages.map((function(t){var e=t.match(/.*\[id "(\d*)".*$/);return e?{message:t,rule:e.pop()}:{message:t,rule:""}}));return{item:t,time:t.transaction.time,host:t.request.headers.Host,uri:t.request.request_line,ip:t.transaction.remote_address,messages:n,rules:(0,i.default)(new Set(n.map((function(t){return t.rule})).filter(Boolean)))}},skipRule:(p=(0,u.default)(s.default.mark((function t(e){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.addSkip({id:String(e),domain:this.domainParam,subdomain:this.subdomainParam});case 2:if(!(t.sent instanceof Error)){t.next=5;break}return t.abrupt("return");case 5:this.ids.push({id:e});case 6:case"end":return t.stop()}}),t,this)}))),function(t){return p.apply(this,arguments)}),searchDomains:function(){l.searchDomains({search:this.domain})}}};e.default=y},3114:function(t,e,n){var a=n(3702);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,n(4).default)("508f1bfa",a,!0,{})},3700:function(t,e,n){"use strict";n(7),n(10),n(5),n(6),n(8),n(11);var a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.searchDomains=e.getLog=e.saveFlags=e.removeSkip=e.addSkip=e.getModSecurity=void 0,n(50);var r=a(n(2)),s=a(n(78));function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){(0,r.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var u="/CMD_MODSECURITY",l=s.default.get({url:u,id:"MOD_SECURITY",domain:!0,after:function(t){return t.mapProp("subdomain_select",t.toSelect)}});e.getModSecurity=l;var c=s.default.post({url:u,domain:!0,schema:{id:s.default.REQUIRED_STRING},before:function(t){return{id:null,SecRuleRemoveById:t.id,add:!0,action:"select"}}});e.addSkip=c;var d=s.default.select({url:u,domain:!0,params:{delete:!0,action:"select"}});e.removeSkip=d;var f=s.default.post({url:u,params:{action:"save"},domain:!0,schema:{SecRuleEngine:s.default.REQUIRED_STRING,SecRuleRemoveById:s.default.OPTIONAL_STRING}});e.saveFlags=f;var m=s.default.get({url:u,id:"MODSECURITY_LOG",params:{action:"log",lines:"100"},schema:{domain:s.default.OPTIONAL_STRING,max_time:o(o({},s.default.OPTIONAL_STRING),{},{default:"15"})},response:[],mapResponse:{lines:function(t){return Object.values(t.logs)},summary:function(t){var e=t.summary;return{time:e.max_time,returned:e.returned_lines,requested:e.requested_lines,aborted:"yes"===e.time_abort}}}});e.getLog=m;var p=s.default.get({id:"SEARCH_DOMAINS",url:"/CMD_AJAX_SEARCH",schema:{search:s.default.REQUIRED_STRING},params:{search_domains:"1",search_users:"0",search_resellers:"0",search_admins:"0",search_email:"0",search_ftp:"0",search_db:"0"},response:[],mapResponse:function(t){return Object.values(t.domains||{})}});e.searchDomains=p},3701:function(t,e,n){"use strict";n(3114)},3702:function(t,e,n){},3703:function(t,e){},3954:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return r}));var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("app-page",[t.userLevel?n("template",{slot:"page:title"},[t.subdomainParam?n("translate",{attrs:{"translate-params":{domain:t.subdomain+"."+t.domainParam}}},[t._v("\n Modsecurity: %{ domain }\n ")]):n("translate",{attrs:{"translate-params":{domain:t.domainParam}}},[t._v("\n Modsecurity: %{ domain }\n ")])],1):t._e(),t._v(" "),t.userLevel?t._e():n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Domain\n ")]),t._v(" "),n("input-autocomplete",{attrs:{slot:"content",values:t.$api.domains},on:{input:t.searchDomains},slot:"content",model:{value:t.domain,callback:function(e){t.domain=e},expression:"domain"}})],1),t._v(" "),t.domainParam&&t.haveSubdomains?n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Subdomain\n ")]),t._v(" "),n("input-select",{attrs:{slot:"content",options:t.subdomainOptions},slot:"content",model:{value:t.subdomain,callback:function(e){t.subdomain=e},expression:"subdomain"}})],1):t._e(),t._v(" "),n("ui-tabs",{attrs:{tabs:[{id:"config",label:t.$gettext("Status & Disabled Rules")},{id:"log",label:t.$gettext("Log")}]}},[n("app-page-section",{key:"flags",attrs:{slot:"tab:config"},slot:"tab:config"},[n("table",{staticClass:"table"},[n("thead",[n("tr",[n("translate",{attrs:{tag:"th"}},[t._v("\n ModSecurity Status\n ")]),t._v(" "),n("translate",{attrs:{tag:"th"}},[t._v("\n Setting\n ")])],1)]),t._v(" "),n("tbody",[n("tr",[n("td",[n("translate",[t._v("SecRuleEngine")])],1),t._v(" "),n("td",[n("input-radio",{attrs:{value:"On"},model:{value:t.flags.rule,callback:function(e){t.$set(t.flags,"rule",e)},expression:"flags.rule"}},[n("translate",[t._v("On")])],1),t._v(" "),n("input-radio",{directives:[{name:"margin",rawName:"v-margin:left",value:1,expression:"1",arg:"left"}],attrs:{value:"Off"},model:{value:t.flags.rule,callback:function(e){t.$set(t.flags,"rule",e)},expression:"flags.rule"}},[n("translate",[t._v("Off")])],1)],1)])])]),t._v(" "),n("ui-button",{attrs:{slot:"footer:buttons",theme:"safe"},on:{click:t.saveFlags},slot:"footer:buttons"},[n("translate",[t._v("Save")])],1)],1),t._v(" "),n("app-page-section",{key:"rules",attrs:{slot:"tab:config"},slot:"tab:config"},[n("translate",{attrs:{slot:"section:title"},slot:"section:title"},[t._v("\n Disabled Rules\n ")]),t._v(" "),t.ids.length?n("ui-r-table",{attrs:{rows:t.ids,columns:[{id:"id",label:t.$gettext("ModSecurity Disabled Rules")}],"checked-rows":t.select},on:{"update:checkedRows":function(e){t.select=e},"update:checked-rows":function(e){t.select=e}}},[n("ui-table-action",{attrs:{slot:"table:actions"},on:{click:t.removeRules},slot:"table:actions"},[n("translate",[t._v("Delete")])],1)],1):t._e(),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n ID\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content",placeholder:t.$gettext("1234 or 1234-1239")},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.addRule.apply(null,arguments)}},slot:"content",model:{value:t.newId,callback:function(e){t.newId=e},expression:"newId"}})],1),t._v(" "),n("ui-button",{attrs:{slot:"footer:buttons",theme:"safe"},on:{click:t.addRule},slot:"footer:buttons"},[n("translate",[t._v("Disable Rule")])],1)],1),t._v(" "),n("app-page-section",{key:"log",attrs:{slot:"tab:log"},slot:"tab:log"},[t.logLoading?n("ui-center",{attrs:{height:"10rem"}},[n("ui-loader-icon",{attrs:{size:32}})],1):[n("app-page-section",[n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Lines Count\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content",number:"",disabled:t.fullLog},slot:"content",model:{value:t.lines,callback:function(e){t.lines=e},expression:"lines"}},[n("input-checkbox-button",{attrs:{slot:"additions:left"},slot:"additions:left",model:{value:t.fullLog,callback:function(e){t.fullLog=e},expression:"fullLog"}},[n("translate",[t._v("Full Log (slow for large logfiles)")])],1)],1)],1),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Max Time\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content",number:""},slot:"content",model:{value:t.maxTime,callback:function(e){t.maxTime=e},expression:"maxTime"}})],1),t._v(" "),n("ui-button",{attrs:{slot:"footer:buttons",theme:"safe",disabled:!(t.lines||t.fullLog)},on:{click:t.loadLog},slot:"footer:buttons"},[n("translate",[t._v("Load Log")])],1)],1),t._v(" "),n("app-page-section",[t.log.length?n("ui-table",{staticClass:"log-table",attrs:{items:t.log}},[n("ui-column",{attrs:{id:"time",label:t.$gettext("Date"),fit:""}}),t._v(" "),n("ui-column",{attrs:{id:"host",label:t.$gettext("Domain"),fit:""}}),t._v(" "),n("ui-column",{attrs:{id:"uri",label:t.$gettext("Request Line")}}),t._v(" "),n("ui-column",{attrs:{id:"ip",label:t.$gettext("Client IP"),fit:""}}),t._v(" "),n("ui-column",{attrs:{id:"rule-id",label:t.$gettext("Rule ID")},scopedSlots:t._u([{key:"default",fn:function(e){return t._l(e.messages,(function(e){return n("li",{key:e.message,staticStyle:{"list-style-type":"none"}},[n("ui-tooltip",{attrs:{theme:"primary"},scopedSlots:t._u([{key:"trigger",fn:function(){return[t._v("\n "+t._s(e.rule||t.$gettext("Unknown"))+"\n ")]},proxy:!0},{key:"default",fn:function(){return[t._v("\n "+t._s(e.message)+"\n ")]},proxy:!0}],null,!0)})],1)}))}}],null,!1,2349431814)}),t._v(" "),n("ui-column",{attrs:{id:"actions",fit:""},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.item,r=e.rules;return[n("ui-actions",[n("ui-link",{on:{click:function(e){return t.showMessage(a)}}},[n("translate",[t._v("View Log Item")])],1),t._v(" "),r.length?[r.length>1?t._l(r,(function(e){return n("ui-link",{key:"skip-rule-"+e,on:{click:function(n){return t.skipRule(e)}}},[n("translate",{attrs:{"translate-params":{rule:e}}},[t._v("\n Skip Rule: %{ rule }\n ")])],1)})):n("ui-link",{on:{click:function(e){return t.skipRule(r[0])}}},[n("translate",[t._v("Skip Rule")])],1)]:t._e()],2)]}}],null,!1,1263592793)})],1):n("translate",[t._v("\n No data to show\n ")])],1)]],2)],1),t._v(" "),n("ui-dialog",{attrs:{id:"MODSECURITY_MESSAGE_DIALOG",size:"normal"},on:{"dialog:close":function(e){t.message=""}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Message Details\n ")]),t._v(" "),n("input-text-editor",{attrs:{slot:"content",value:t.message,mode:"json","disable-modes":"","read-only":""},slot:"content"})],1)],2)},r=[]}}]);