mirror of
https://github.com/nuxt/nuxt.git
synced 2025-02-14 20:58:30 +00:00
fix(webpack): disallow cross-site requests in no-cors mode (#30757)
This commit is contained in:
parent
c01050f7ba
commit
ca7b609aa6
@ -1,6 +1,6 @@
|
|||||||
import pify from 'pify'
|
import pify from 'pify'
|
||||||
import { resolve } from 'pathe'
|
import { resolve } from 'pathe'
|
||||||
import { defineEventHandler, fromNodeMiddleware, handleCors, setHeader } from 'h3'
|
import { createError, defineEventHandler, fromNodeMiddleware, getRequestHeader, handleCors, setHeader } from 'h3'
|
||||||
import type { H3CorsOptions } from 'h3'
|
import type { H3CorsOptions } from 'h3'
|
||||||
import type { IncomingMessage, MultiWatching, ServerResponse } from 'webpack-dev-middleware'
|
import type { IncomingMessage, MultiWatching, ServerResponse } from 'webpack-dev-middleware'
|
||||||
import webpackDevMiddleware from 'webpack-dev-middleware'
|
import webpackDevMiddleware from 'webpack-dev-middleware'
|
||||||
@ -146,6 +146,12 @@ function wdmToH3Handler (devMiddleware: webpackDevMiddleware.API<IncomingMessage
|
|||||||
if (isPreflight) {
|
if (isPreflight) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// disallow cross-site requests in no-cors mode
|
||||||
|
if (getRequestHeader(event, 'sec-fetch-mode') === 'no-cors' && getRequestHeader(event, 'sec-fetch-site') === 'cross-site') {
|
||||||
|
throw createError({ statusCode: 403 })
|
||||||
|
}
|
||||||
|
|
||||||
setHeader(event, 'Vary', 'Origin')
|
setHeader(event, 'Vary', 'Origin')
|
||||||
|
|
||||||
event.context.webpack = {
|
event.context.webpack = {
|
||||||
|
Loading…
Reference in New Issue
Block a user