fix(sub): prevent default profile page URL disclosure (#6538)

* fix(sub): prevent default profile page URL disclosure

Add explicit none, builtin, and custom profile page modes.
Preserve existing custom URLs and warn before exposing the built-in page.
Cover mode selection, legacy settings, and subscription response headers.

* fix(subscription): add profile page link options and upgrade notes
This commit is contained in:
NgaiYeanCoi
2026-09-16 03:13:29 +08:00
committed by GitHub
parent 3fa44915c1
commit 1d85ef138e
36 changed files with 747 additions and 47 deletions
+2
View File
@@ -115,6 +115,7 @@ export const EXAMPLES: Record<string, unknown> = {
"subListen": "",
"subPath": "",
"subPort": 1,
"subProfileMode": "",
"subProfileUrl": "",
"subRoutingRules": "",
"subShowIdentityOnAllLinks": false,
@@ -271,6 +272,7 @@ export const EXAMPLES: Record<string, unknown> = {
"subListen": "",
"subPath": "",
"subPort": 1,
"subProfileMode": "",
"subProfileUrl": "",
"subRoutingRules": "",
"subShowIdentityOnAllLinks": false,
+8
View File
@@ -369,6 +369,9 @@ export const SCHEMAS: Record<string, unknown> = {
"minimum": 1,
"type": "integer"
},
"subProfileMode": {
"type": "string"
},
"subProfileUrl": {
"type": "string"
},
@@ -592,6 +595,7 @@ export const SCHEMAS: Record<string, unknown> = {
"subListen",
"subPath",
"subPort",
"subProfileMode",
"subProfileUrl",
"subRoutingRules",
"subShowIdentityOnAllLinks",
@@ -1020,6 +1024,9 @@ export const SCHEMAS: Record<string, unknown> = {
"minimum": 1,
"type": "integer"
},
"subProfileMode": {
"type": "string"
},
"subProfileUrl": {
"type": "string"
},
@@ -1251,6 +1258,7 @@ export const SCHEMAS: Record<string, unknown> = {
"subListen",
"subPath",
"subPort",
"subProfileMode",
"subProfileUrl",
"subRoutingRules",
"subShowIdentityOnAllLinks",
+2
View File
@@ -122,6 +122,7 @@ export interface AllSetting {
subListen: string;
subPath: string;
subPort: number;
subProfileMode: string;
subProfileUrl: string;
subRoutingRules: string;
subShowIdentityOnAllLinks: boolean;
@@ -279,6 +280,7 @@ export interface AllSettingView {
subListen: string;
subPath: string;
subPort: number;
subProfileMode: string;
subProfileUrl: string;
subRoutingRules: string;
subShowIdentityOnAllLinks: boolean;
+2
View File
@@ -136,6 +136,7 @@ export const AllSettingSchema = z.object({
subListen: z.string(),
subPath: z.string(),
subPort: z.number().int().min(1).max(65535),
subProfileMode: z.string(),
subProfileUrl: z.string(),
subRoutingRules: z.string(),
subShowIdentityOnAllLinks: z.boolean(),
@@ -294,6 +295,7 @@ export const AllSettingViewSchema = z.object({
subListen: z.string(),
subPath: z.string(),
subPort: z.number().int().min(1).max(65535),
subProfileMode: z.string(),
subProfileUrl: z.string(),
subRoutingRules: z.string(),
subShowIdentityOnAllLinks: z.boolean(),