61 Commits
Author SHA1 Message Date
Codex 71dd21269b Merge upstream monitoring features preserving domain extensions and require fixed Go toolchain 2026-10-22 23:50:03 +08:00
77-QiQi fa611ebd9e Update ddns_test.go 2026-09-14 11:06:44 +08:00
77-QiQi 39e1c6d1be Update ddns_test.go 2026-09-14 10:57:37 +08:00
77-QiQi c19e8eb252 Update ddns_test.go 2026-09-14 10:51:01 +08:00
77-QiQi db78c34b91 Update ddns_test.go 2026-09-14 10:43:36 +08:00
77-QiQi e9ddd46655 Update ddns_test.go 2026-09-14 10:36:04 +08:00
77-QiQi 09db8b4361 Update ddns_test.go 2026-09-14 10:29:08 +08:00
77-QiQi ed9f21e4ea Update ddns_test.go 2026-09-14 10:13:10 +08:00
77-QiQi f611f0a551 Update ddns_test.go 2026-09-14 10:04:38 +08:00
77-QiQi 19d959c60d Update ddns.go 2026-09-14 10:02:03 +08:00
77-QiQi 02fe54bb80 Update ddns_test.go 2026-09-14 09:10:17 +08:00
77-QiQi 0a71cbdb63 Update ddns_test.go 2026-09-14 08:56:04 +08:00
77-QiQi dd0b598dc3 Update ddns_test.go 2026-09-14 08:50:08 +08:00
77-QiQi 892619c95c Update ddns_test.go 2026-09-14 08:39:52 +08:00
77-QiQi cbc583dd3a Update ddns.go 2026-09-14 08:39:22 +08:00
77-QiQi f2f10ea7bc Update ddns.go 2026-09-13 20:55:03 +08:00
naiba 46d83d6d68 style(ddns): apply gofmt 2026-09-12 13:29:44 +00:00
77-QiQi c684388153 Improve: Delete the corresponding DNS record if the IPv4/IPv6 address is empty. 2026-09-08 12:07:23 +08:00
Bot 3d2b27f4ec feat: custom domain management, config and notification fixes, and VPS auto-renewal rollover 2026-09-01 23:45:21 +08:00
Bot 00f5777112 Merge branch 'upstream/master' into master and preserve domain extensions 2026-08-31 02:46:42 +08:00
77-QiQi 28d731265c improve: skip empty addresses during DDNS updates (#1231) 2026-08-17 11:54:39 +08:00
naibaandnaiba/CloudCode ea7ad67f03 fix(ddns): apply SSRF defense to webhook provider
GHSA-6x26-5727-rrm9: a low-privilege member could point a DDNS webhook
at internal or loopback hosts and the dashboard would dial them with the
unrestricted utils.HttpClient.

Extract the notification SSRF defenses (CIDR blocklist, IP-pin DialContext,
SNI preservation, redirect rejection) into reusable helpers in pkg/utils
(NewRestrictedHTTPClient / ResolveAllowedHTTPURL / buildRestrictedHTTPClient)
and route the DDNS webhook through the same path. Replace the notification
inline implementation with a thin wrapper to keep behaviour identical.

Side improvements collected by the refactor:
- prepareRequest now resolves DNS once and returns the paired client, so
  the dialer's pinned IP and the validated URL stay in sync (no more
  double resolution between prepareRequest and SetRecords).
- response body is drained and closed.
- HttpClient / HttpClientSkipTlsVerify are explicitly tagged unsafe for
  attacker-controlled URLs.

Tests cover: hermetic SNI preservation, redirect rejection, dial pin to
the vetted IP, the full blocked-CIDR list at the webhook entry point,
and the verifyTLS↔skipVerifyTLS inversion in the notification wrapper.

Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
2026-05-18 15:14:27 +00:00
Bot c606fd99f6 chore: optimize and fix github actions (cleanup, CI fixes, security scanner tuning) 2026-04-26 22:25:00 +08:00
naiba 3b2cefdd07 feat: binding ip with session
🛡️staying safe even your frontend was hacked
2025-10-09 21:36:59 +08:00
naiba 540c1cb1e7 feat: binding ip with session
🛡️staying safe even your frontend was hacked
2025-10-09 21:36:59 +08:00
UUBulb 04d7651f58 update dependencies (#1077)
* update dependencies

ddns: update libdns to 1.0.0

* rename var
2025-05-02 00:25:23 +08:00
UUBulb bcc4104bde update dependencies (#1077)
* update dependencies

ddns: update libdns to 1.0.0

* rename var
2025-05-02 00:25:23 +08:00
UUBulb 5c27259439 chore: cleanup some code (#1069)
* chore

* modernize loop

* ddns: simpify Provider struct
2025-04-26 18:28:21 +08:00
UUBulb 4871211f93 chore: cleanup some code (#1069)
* chore

* modernize loop

* ddns: simpify Provider struct
2025-04-26 18:28:21 +08:00
UUBulb b3377127a4 update ddns on server update (#1050) 2025-03-31 19:41:04 +08:00
UUBulb 67c129635e update ddns on server update (#1050) 2025-03-31 19:41:04 +08:00
UUBulb 49c68f0da4 ddns: retreive dns servers from context (#1034) 2025-03-17 23:11:40 +08:00
UUBulb 38c2374bad ddns: retreive dns servers from context (#1034) 2025-03-17 23:11:40 +08:00
UUBulb ea068d4db1 refactor: simplify server & service manipulation (#993)
* refactor: simplify server & service manipulation

* update

* fix

* update for nat, ddns & notification

* chore

* update cron

* update dependencies

* use of function iterators

* update default dns servers
2025-02-21 23:08:12 +08:00
UUBulb 91bef2882a refactor: simplify server & service manipulation (#993)
* refactor: simplify server & service manipulation

* update

* fix

* update for nat, ddns & notification

* chore

* update cron

* update dependencies

* use of function iterators

* update default dns servers
2025-02-21 23:08:12 +08:00
UUBulb eeb96caf4d feat: batch set server config (#983)
* feat: batch set server config

* run in parallel

* fix route

* fix

* return some information

* fix order
2025-02-04 11:25:49 +08:00
UUBulb a41f623dd2 feat: batch set server config (#983)
* feat: batch set server config

* run in parallel

* fix route

* fix

* return some information

* fix order
2025-02-04 11:25:49 +08:00
UUBulb 2a6206f1a9 ddns: allow overriding domains per configuration (#979) 2025-01-30 12:19:40 +08:00
UUBulb 82d40d49fd ddns: allow overriding domains per configuration (#979) 2025-01-30 12:19:40 +08:00
UUBulb ff4fd31ec4 small improvements (#958)
* small improvements

* fix: return empty iterator if no json present

* use time.Tick

* changes
2025-01-19 21:22:00 +08:00
UUBulb 4b1af369e3 small improvements (#958)
* small improvements

* fix: return empty iterator if no json present

* use time.Tick

* changes
2025-01-19 21:22:00 +08:00
naiba a7e4fe0909 rename repo 2024-11-28 19:38:54 +08:00
naiba 3cce7ebf01 rename repo 2024-11-28 19:38:54 +08:00
UUBulb 643c6dd3a1 ddns: remove ipv6 nameservers, support custom nameservers (#439) 2024-10-18 22:06:01 +08:00
UUBulb f6531a52bd ddns: remove ipv6 nameservers, support custom nameservers (#439) 2024-10-18 22:06:01 +08:00
UUBulb 6ce6c036e0 fix(ddns): handle second-level domain correctly (#438) 2024-10-18 12:26:43 +08:00
UUBulb fc9f1b6bcc fix(ddns): handle second-level domain correctly (#438) 2024-10-18 12:26:43 +08:00
UUBulb 2ee92ed956 fix(ddns): add missing field WebhookRequestType (#436)
* fix(ddns): add missing field WebhookRequestType

* add missing placeholders
2024-10-17 23:35:28 +08:00
UUBulb be7b6e9c5e fix(ddns): add missing field WebhookRequestType (#436)
* fix(ddns): add missing field WebhookRequestType

* add missing placeholders
2024-10-17 23:35:28 +08:00
UUBulbandnap0o bf9c6d669a ddns: store configuation in database (#435)
* ddns: store configuation in database

Co-authored-by: nap0o <144927971+nap0o@users.noreply.github.com>

* feat: split domain with soa lookup

* switch to libdns interface

* ddns: add unit test

* ddns: skip TestSplitDomainSOA on ci

network is not steady

* fix error handling

* fix error handling

---------

Co-authored-by: nap0o <144927971+nap0o@users.noreply.github.com>
2024-10-17 21:03:03 +08:00