72 Commits
Author SHA1 Message Date
samwaf 195a668c99 feat: add unified log export tasks 2026-10-30 11:10:00 +08:00
samwaf ae1d61eb32 feat: support temporary client IP bans through custom rules
#IKHZMG
2026-10-21 11:20:44 +08:00
samwaf 1b7b73b40b fix: record CC-ban-window block
#1001
2026-10-14 09:42:59 +08:00
samwafgo 64aaab16fa Feat log shared (#1007)
* fix: make archived log shard connections concurrency-safe and recoverable

* fix: build the WebSocket online table before its consumers start

* perf: cap stored payloads, index log lookups by IP and rule, batch IP tag writes

* fix: keep archived log shards readable when the live table gains a column

* feat: merge IP tag history when their database location changes

* refactor: move request payloads out of the access log into their own table

* feat: scope log database export to a time range and selected tiers

* feat: add an IP watchlist that full-captures watched IPs

* feat: split log storage into security events, access rows, and payload tiers

* feat: roll up requests per actor and path into daily analysis tables

* fix:actor key by ip

* feat: add a source and path analysis page over the daily rollups

* feat: exclude chosen source IPs from web log recording

* docs: add upgrade notes for the analysis page and log IP exclusion

* feat: derive the log partition from the time range and look up identifiers across all of them

* feat: add time partition verbs and the period naming they share

* feat: cut log archives per month and expire them by dropping partitions

* feat: manage log partitions, and answer why an IP has no logs

* fix: read archived SQLite log shards read-only and choose tiers by data

* fix: count the live log shard from access_log instead of a stale snapshot

* fix:export db bug

* fix: default backend keep-alive pool (512/128/90s) to stop connect-close churn under load

* chore: gen_swagger.bat outputs json only, syncs doc site, runs route test

* feat: pin web frontend version and embed it into the binary
2026-10-10 14:39:06 +08:00
samwaf 619155764f feat: enhance cc
#IK7J58
2026-09-03 11:22:53 +08:00
samwaf b3a998a815 feat:add port protocol
#955
2026-08-30 14:39:12 +08:00
samwaf 24227923e8 feat: strengthen WAF detection coverage and gate the new inspection paths
Detection engine:
- Normalize request data (body, cookies, form and JSON values, request headers)
  before inspection instead of only the URL query string, so encoded variants
  are evaluated consistently.
- Extend XSS / SQLi / command-injection inspection to request bodies and to
  custom request headers; bodies and headers are scanned per value rather than
  as one blob to keep false positives low.
- Add a configurable body inspection mode (body_detect_mode: observe/block/off,
  default observe) so the new deep checks record rather than block until an
  operator confirms them, plus body_detect_field_exclude to skip fields that
  legitimately carry rich text.
- Keep false positives down on the new paths: skip structured values, require a
  corroborating signal before flagging body/header XSS, and leave dual-use
  keywords out of the fallback lists.
- Path traversal is now normalized and judged on whether it escapes the site
  root instead of matching literally; this also clears a long-standing false
  positive on legitimate in-site relative paths. Adds a sensitive-file list.
- Scanner detection now covers all request headers and known probe paths.

Plugins:
- Suspend plugin loading pending signing and admission work. The code path is
  retained but gated off, and shipped disabled by default.

Validated against a local test corpus and a 33k real-traffic benchmark:
detection improved across every category while the real-traffic false-positive
count stayed flat.
2026-08-23 11:29:22 +08:00
samwaf 4b39767c04 fix:remove mmdb 2026-08-12 16:41:30 +08:00
samwaf 44bf2da78f fix:HTTP3 feature not working, UDP port not being listened
#916
2026-08-10 09:55:43 +08:00
samwaf b6cf76481d feat:add login tips
#924
2026-08-06 18:23:14 +08:00
samwaf 3ef6b4830b feat:unified access authentication
#408
2026-08-05 10:21:43 +08:00
samwaf 2a972b9120 feat:add ip group
#905 #195
2026-08-03 16:33:22 +08:00
samwaf c7cdbe397a feat:add AI rule generation, GPT settings, request timeout config and rule chain mode entry
#844
2026-07-13 16:43:23 +08:00
samwaf 51c36deb6f feat: graceful update
#831
2026-06-18 13:54:22 +08:00
samwaf 17ac5ebbd3 feat:add light ai model
#827
2026-06-15 17:00:35 +08:00
samwaf 1ffb889f3b feat:add migratedb 2026-05-13 10:43:15 +08:00
samwaf a5c2e72740 feat:add mysql 2026-05-12 17:00:04 +08:00
samwaf 1ea19dda19 fix:cc noticesender time bug
#IJCA1T
2026-04-22 16:27:31 +08:00
samwaf 07656678e3 feat:add overview
#673
2026-03-10 16:54:05 +08:00
samwaf 3ed0058f2a feat:rule function 2026-02-06 16:37:47 +08:00
samwaf 44851da0da feat:add rule safe bot
#580
2025-12-05 15:52:58 +08:00
samwafgo 8a8c3057c5 Merge pull request #551 from qiulaidongfeng/http3
feat: 支持客户端->waf 使用http3
2025-11-26 08:56:52 +08:00
qiulaidongfeng acb9077ee1 feat: 支持客户端->waf 使用http3
Fixes #550
2025-11-25 16:28:01 +08:00
samwaf 00c281f67a feat:add notice manage
#560
2025-11-25 12:51:13 +08:00
samwaf 902dd40394 feat: add ip failure
#529
2025-11-21 17:16:53 +08:00
samwaf 18080008f8 feat: check ip response error count except bot
#529
2025-11-18 14:27:11 +08:00
samwaf 3a1d7ed124 feat: check ip response error count
#529
2025-11-18 13:59:19 +08:00
samwaf 0a03c1d837 feat: modify monitor
#501
2025-10-30 17:40:14 +08:00
samwaf c0fbb15195 feat:add network
#501
2025-10-30 11:20:58 +08:00
samwaf 9ea3ab4895 feat:add cpu/memory
#501
2025-10-30 10:21:17 +08:00
samwaf f95c598f0a feat:add biz info
#501
2025-10-29 16:40:05 +08:00
samwaf 070d57371f feat:weblog load balance
#431
2025-10-15 15:17:35 +08:00
samwaf 1c015706db feat:add rule header
#422
2025-09-26 08:40:41 +08:00
samwaf aeb422c706 feat:attack log only mode
#ICKL6U
2025-09-10 11:28:32 +08:00
samwaf 2e5394cbac feat:add post /put body
#218
2025-05-15 08:44:38 +08:00
samwaf 835e715f46 feat:captcha
#112 #3
2025-03-24 10:12:24 +08:00
samwaf 63b4f3d55a feat:add response header
#191
2025-03-13 09:35:27 +08:00
samwaf e68c1e809d fix:check logic
#170
2025-03-04 14:53:40 +08:00
samwaf 356e40fddc feat:log cost time 2025-03-04 08:39:24 +08:00
samwaf 38f59af0ed feat:sensitive check response and action
#31 #137
2025-02-20 14:09:10 +08:00
samwaf f542b99182 feat:init deepseek chatgpt
#145
2025-02-17 15:51:44 +08:00
samwaf bedcbf5c04 feat:add focus attack log
#24
2025-01-23 13:53:00 +08:00
samwaf 448cb26ba9 feat:more domain
#IATJMI
2024-12-06 14:10:45 +08:00
samwaf d50d5d92bd feat:url_encode url 2024-11-05 15:15:42 +08:00
samwaf 98f8bd5ce2 feat:add weblog to kafka
#12 #IAUI3L
2024-10-23 08:08:16 +08:00
samwaf 434b43d9b1 feat:add export current log file 2024-09-20 08:45:16 +08:00
samwaf c7c311602f feat:1.增加程序鲁棒性 2:优化操作 3:增加是否启动运行 2024-07-04 16:36:41 +08:00
samwaf e9ecd073c1 feat:增加日志排序字段 2024-01-12 16:03:26 +08:00
samwaf c0b1a331d3 feat:增加搜索爬虫的检验 2024-01-11 14:05:32 +08:00
samwaf 32a6acc741 fix:改动把状态库和日志库进行分离 2023-11-09 16:12:08 +08:00