diff --git a/web/public/js/components.js b/web/public/js/components.js index 837f9af4..c98e4b40 100644 --- a/web/public/js/components.js +++ b/web/public/js/components.js @@ -1935,7 +1935,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio -`}),Vue.component("http-firewall-config-box",{props:["v-firewall-config","v-is-location","v-is-group","v-firewall-policy"],data:function(){let e=this.vFirewallConfig;return{firewall:e=null==e?{isPrior:!1,isOn:!1,firewallPolicyId:0,ignoreGlobalRules:!1}:e,moreOptionsVisible:!1}},methods:{changeOptionsVisible:function(e){this.moreOptionsVisible=e}},template:`
| 启用WAF |
启用WAF之后,各项WAF设置才会生效。 +选中后,表示启用当前网站服务的WAF功能。 |
|
| 不使用全局规则 | +启用系统全局规则 |
- 选中后,表示不使用系统全局WAF策略中定义的规则。 +选中后,表示使用系统全局WAF策略中定义的规则。 |
| 检查请求来源指纹 | +
+ 在接收到HTTPS请求时尝试检查请求来源的指纹,用来检测代理服务和爬虫攻击。 + |
+ ||||||||||||||||||||
| 忽略常见文件 |
@@ -2431,6 +2438,43 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
+`}),Vue.component("uam-config-box",{props:["v-uam-config","v-is-location","v-is-group"],data:function(){let e=this.vUamConfig;return null==(e=null==e?{isPrior:!1,isOn:!1,onlyURLPatterns:[],exceptURLPatterns:[]}:e).onlyURLPatterns&&(e.onlyURLPatterns=[]),null==e.exceptURLPatterns&&(e.exceptURLPatterns=[]),{config:e,moreOptionsVisible:!1}},methods:{showMoreOptions:function(){this.moreOptionsVisible=!this.moreOptionsVisible}},template:`
+
+ `}),Vue.component("http-cache-stale-config",{props:["v-cache-stale-config"],data:function(){let e=this.vCacheStaleConfig;return{config:e=null==e?{isPrior:!1,isOn:!1,status:[],supportStaleIfErrorHeader:!0,life:{count:1,unit:"day"}}:e}},watch:{config:{deep:!0,handler:function(){this.$emit("change",this.config)}}},methods:{},template:`
+
+ `}),Vue.component("firewall-event-level-options",{props:["v-value"],mounted:function(){let t=this;Tea.action("/ui/eventLevelOptions").post().success(function(e){t.levels=e.data.eventLevels,t.change()})},data:function(){let e=this.vValue;return{levels:[],description:"",level:e=null!=e&&0!=e.length?e:""}},methods:{change:function(){this.$emit("change");let i=this;var e=this.levels.$find(function(e,t){return t.code==i.level});this.description=null!=e?e.description:""}},template:`
+
+
+ `}),Vue.component("size-capacity-view",{props:["v-default-text","v-value"],template:`
+
+
{{vValue.count}}{{vValue.unit.toUpperCase()}}
{{vDefaultText}}
diff --git a/web/public/js/components.src.js b/web/public/js/components.src.js
index e9c9bcbd..ce54daad 100755
--- a/web/public/js/components.src.js
+++ b/web/public/js/components.src.js
@@ -5239,7 +5239,13 @@ Vue.component("http-firewall-config-box", {
return {
firewall: firewall,
- moreOptionsVisible: false
+ moreOptionsVisible: false,
+ execGlobalRules: !firewall.ignoreGlobalRules
+ }
+ },
+ watch: {
+ execGlobalRules: function (v) {
+ this.firewall.ignoreGlobalRules = !v
}
},
methods: {
@@ -5269,17 +5275,17 @@ Vue.component("http-firewall-config-box", {
启用WAF |
|
启用WAF之后,各项WAF设置才会生效。 +选中后,表示启用当前网站服务的WAF功能。 | ||||||||||||||||||
| 不使用全局规则 | +启用系统全局规则 |
- 选中后,表示不使用系统全局WAF策略中定义的规则。 +选中后,表示使用系统全局WAF策略中定义的规则。 |
|||||||||||||||||||
| 检查请求来源指纹 | +
+ 在接收到HTTPS请求时尝试检查请求来源的指纹,用来检测代理服务和爬虫攻击。 + |
+ ||||||||||||||||||||
| 忽略常见文件 |
@@ -7094,6 +7124,75 @@ Vue.component("server-name-box", {
`
})
+// UAM模式配置
+Vue.component("uam-config-box", {
+ props: ["v-uam-config", "v-is-location", "v-is-group"],
+ data: function () {
+ let config = this.vUamConfig
+ if (config == null) {
+ config = {
+ isPrior: false,
+ isOn: false,
+ onlyURLPatterns: [],
+ exceptURLPatterns: []
+ }
+ }
+ if (config.onlyURLPatterns == null) {
+ config.onlyURLPatterns = []
+ }
+ if (config.exceptURLPatterns == null) {
+ config.exceptURLPatterns = []
+ }
+ return {
+ config: config,
+ moreOptionsVisible: false
+ }
+ },
+ methods: {
+ showMoreOptions: function () {
+ this.moreOptionsVisible = !this.moreOptionsVisible
+ }
+ },
+ template: `
+
+ `
+})
+
Vue.component("http-cache-stale-config", {
props: ["v-cache-stale-config"],
data: function () {
@@ -8720,39 +8819,6 @@ Vue.component("user-selector", {
`
})
-// UAM模式配置
-Vue.component("uam-config-box", {
- props: ["v-uam-config", "v-is-location", "v-is-group"],
- data: function () {
- let config = this.vUamConfig
- if (config == null) {
- config = {
- isPrior: false,
- isOn: false
- }
- }
- return {
- config: config
- }
- },
- template: `
-
- `
-})
-
Vue.component("http-header-policy-box", {
props: ["v-request-header-policy", "v-request-header-ref", "v-response-header-policy", "v-response-header-ref", "v-params", "v-is-location", "v-is-group", "v-has-group-request-config", "v-has-group-response-config", "v-group-setting-url"],
data: function () {
@@ -9551,6 +9617,75 @@ Vue.component("http-compression-config-box", {
`
})
+// HTTP CC防护配置
+Vue.component("http-cc-config-box", {
+ props: ["v-cc-config", "v-is-location", "v-is-group"],
+ data: function () {
+ let config = this.vCcConfig
+ if (config == null) {
+ config = {
+ isPrior: false,
+ isOn: false,
+ onlyURLPatterns: [],
+ exceptURLPatterns: []
+ }
+ }
+ if (config.onlyURLPatterns == null) {
+ config.onlyURLPatterns = []
+ }
+ if (config.exceptURLPatterns == null) {
+ config.exceptURLPatterns = []
+ }
+ return {
+ config: config,
+ moreOptionsVisible: false
+ }
+ },
+ methods: {
+ showMoreOptions: function () {
+ this.moreOptionsVisible = !this.moreOptionsVisible
+ }
+ },
+ template: `
+
+ `
+})
+
Vue.component("firewall-event-level-options", {
props: ["v-value"],
mounted: function () {
@@ -10536,6 +10671,12 @@ Vue.component("http-location-labels", {
+
+
+ `
+})
+
Vue.component("size-capacity-view", {
props:["v-default-text", "v-value"],
template: `
+
+
+
diff --git a/web/public/js/components/server/http-firewall-rules.js b/web/public/js/components/server/http-firewall-rules.js
index 13eb7708..fc10a906 100644
--- a/web/public/js/components/server/http-firewall-rules.js
+++ b/web/public/js/components/server/http-firewall-rules.js
@@ -93,6 +93,7 @@ Vue.component("http-firewall-checkpoint-cc", {
let period = 60
let threshold = 1000
let ignoreCommonFiles = false
+ let enableFingerprint = true
let options = {}
if (window.parent.UPDATING_RULE != null) {
@@ -117,6 +118,9 @@ Vue.component("http-firewall-checkpoint-cc", {
if (options.ignoreCommonFiles != null && typeof (options.ignoreCommonFiles) == "boolean") {
ignoreCommonFiles = options.ignoreCommonFiles
}
+ if (options.enableFingerprint != null && typeof (options.enableFingerprint) == "boolean") {
+ enableFingerprint = options.enableFingerprint
+ }
let that = this
setTimeout(function () {
@@ -128,6 +132,7 @@ Vue.component("http-firewall-checkpoint-cc", {
period: period,
threshold: threshold,
ignoreCommonFiles: ignoreCommonFiles,
+ enableFingerprint: enableFingerprint,
options: {},
value: threshold
}
@@ -141,6 +146,9 @@ Vue.component("http-firewall-checkpoint-cc", {
},
ignoreCommonFiles: function () {
this.change()
+ },
+ enableFingerprint: function () {
+ this.change()
}
},
methods: {
@@ -165,6 +173,11 @@ Vue.component("http-firewall-checkpoint-cc", {
ignoreCommonFiles = false
}
+ let enableFingerprint = this.enableFingerprint
+ if (typeof enableFingerprint != "boolean") {
+ enableFingerprint = true
+ }
+
this.vCheckpoint.options = [
{
code: "keys",
@@ -181,6 +194,10 @@ Vue.component("http-firewall-checkpoint-cc", {
{
code: "ignoreCommonFiles",
value: ignoreCommonFiles
+ },
+ {
+ code: "enableFingerprint",
+ value: enableFingerprint
}
]
},
@@ -218,6 +235,13 @@ Vue.component("http-firewall-checkpoint-cc", {
对于网站类应用来说,当前阈值设置的太低,有可能会影响用户正常访问。 |
||||||||||||||||||||
| 检查请求来源指纹 | +
+ 在接收到HTTPS请求时尝试检查请求来源的指纹,用来检测代理服务和爬虫攻击。 + |
+ ||||||||||||||||||||
| 忽略常见文件 | |||||||||||||||||||||