fix: host wildcard
This commit is contained in:
@@ -132,6 +132,7 @@
|
|||||||
"snakecase-keys": "5.4.2",
|
"snakecase-keys": "5.4.2",
|
||||||
"ua-parser-js": "1.0.2",
|
"ua-parser-js": "1.0.2",
|
||||||
"vm2": "3.9.9",
|
"vm2": "3.9.9",
|
||||||
|
"wildcard-match": "^5.1.2",
|
||||||
"xss": "1.0.13",
|
"xss": "1.0.13",
|
||||||
"zx-cjs": "6.1.0"
|
"zx-cjs": "6.1.0"
|
||||||
},
|
},
|
||||||
|
|||||||
6
pnpm-lock.yaml
generated
6
pnpm-lock.yaml
generated
@@ -118,6 +118,7 @@ specifiers:
|
|||||||
typescript: 4.7.4
|
typescript: 4.7.4
|
||||||
ua-parser-js: 1.0.2
|
ua-parser-js: 1.0.2
|
||||||
vm2: 3.9.9
|
vm2: 3.9.9
|
||||||
|
wildcard-match: ^5.1.2
|
||||||
xss: 1.0.13
|
xss: 1.0.13
|
||||||
zx-cjs: 6.1.0
|
zx-cjs: 6.1.0
|
||||||
|
|
||||||
@@ -190,6 +191,7 @@ dependencies:
|
|||||||
snakecase-keys: 5.4.2
|
snakecase-keys: 5.4.2
|
||||||
ua-parser-js: 1.0.2
|
ua-parser-js: 1.0.2
|
||||||
vm2: 3.9.9
|
vm2: 3.9.9
|
||||||
|
wildcard-match: 5.1.2
|
||||||
xss: 1.0.13
|
xss: 1.0.13
|
||||||
zx-cjs: 6.1.0
|
zx-cjs: 6.1.0
|
||||||
|
|
||||||
@@ -7971,6 +7973,10 @@ packages:
|
|||||||
string-width: 1.0.2
|
string-width: 1.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/wildcard-match/5.1.2:
|
||||||
|
resolution: {integrity: sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/windows-release/4.0.0:
|
/windows-release/4.0.0:
|
||||||
resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==}
|
resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|||||||
@@ -17,13 +17,15 @@ export const CROSS_DOMAIN = {
|
|||||||
? argv.allowed_origins?.split?.(',')
|
? argv.allowed_origins?.split?.(',')
|
||||||
: [
|
: [
|
||||||
'innei.ren',
|
'innei.ren',
|
||||||
|
'*.innei.ren',
|
||||||
'shizuri.net',
|
'shizuri.net',
|
||||||
|
'*.shizuri.net',
|
||||||
'localhost',
|
'localhost',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'mbp.cc',
|
'mbp.cc',
|
||||||
'local.innei.test',
|
'local.innei.test',
|
||||||
'22333322.xyz',
|
'22333322.xyz',
|
||||||
'.*dev',
|
'*.dev',
|
||||||
],
|
],
|
||||||
|
|
||||||
// allowedReferer: 'innei.ren',
|
// allowedReferer: 'innei.ren',
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import cluster from 'cluster'
|
import cluster from 'cluster'
|
||||||
import { performance } from 'perf_hooks'
|
import { performance } from 'perf_hooks'
|
||||||
|
import wcmatch from 'wildcard-match'
|
||||||
|
|
||||||
import { LogLevel, Logger, ValidationPipe } from '@nestjs/common'
|
import { LogLevel, Logger, ValidationPipe } from '@nestjs/common'
|
||||||
import { NestFactory } from '@nestjs/core'
|
import { NestFactory } from '@nestjs/core'
|
||||||
@@ -14,8 +15,8 @@ import { LoggingInterceptor } from './common/interceptors/logging.interceptor'
|
|||||||
import { isTest } from './global/env.global'
|
import { isTest } from './global/env.global'
|
||||||
import { MyLogger } from './processors/logger/logger.service'
|
import { MyLogger } from './processors/logger/logger.service'
|
||||||
|
|
||||||
const Origin = Array.isArray(CROSS_DOMAIN.allowedOrigins)
|
const Origin: false | string[] = Array.isArray(CROSS_DOMAIN.allowedOrigins)
|
||||||
? [...CROSS_DOMAIN.allowedOrigins, '*.shizuri.net']
|
? [...CROSS_DOMAIN.allowedOrigins, '*.shizuri.net', '22333322.xyz']
|
||||||
: false
|
: false
|
||||||
|
|
||||||
declare const module: any
|
declare const module: any
|
||||||
@@ -31,14 +32,13 @@ export async function bootstrap() {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
const hosts = Origin && Origin.map((host) => new RegExp(host, 'i'))
|
|
||||||
|
|
||||||
// Origin 如果不是数组就全部允许跨域
|
// Origin 如果不是数组就全部允许跨域
|
||||||
app.enableCors(
|
app.enableCors(
|
||||||
hosts
|
Origin
|
||||||
? {
|
? {
|
||||||
origin: (origin, callback) => {
|
origin: (origin, callback) => {
|
||||||
const allow = hosts.some((host) => host.test(origin))
|
const currentHost = new URL(origin).host
|
||||||
|
const allow = Origin.some((host) => wcmatch(host)(currentHost))
|
||||||
|
|
||||||
callback(null, allow)
|
callback(null, allow)
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user