Initial commit: New MoreminiMore website with fresh design
This commit is contained in:
40
node_modules/astro/dist/vite-plugin-astro-server/sec-fetch.js
generated
vendored
Normal file
40
node_modules/astro/dist/vite-plugin-astro-server/sec-fetch.js
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
import { BaseApp } from "../core/app/base.js";
|
||||
function secFetchMiddleware(logger, allowedDomains) {
|
||||
return function devSecFetch(req, res, next) {
|
||||
const secFetchSite = req.headers["sec-fetch-site"];
|
||||
const secFetchMode = req.headers["sec-fetch-mode"];
|
||||
if (!secFetchSite) {
|
||||
return next();
|
||||
}
|
||||
if (secFetchSite === "same-origin" || secFetchSite === "same-site" || secFetchSite === "none") {
|
||||
return next();
|
||||
}
|
||||
if (secFetchMode === "navigate" || secFetchMode === "nested-navigate") {
|
||||
return next();
|
||||
}
|
||||
if (secFetchMode === "websocket") {
|
||||
return next();
|
||||
}
|
||||
const origin = req.headers["origin"];
|
||||
if (typeof origin === "string") {
|
||||
try {
|
||||
const originUrl = new URL(origin);
|
||||
const protocol = originUrl.protocol.slice(0, -1);
|
||||
if (BaseApp.validateForwardedHost(originUrl.host, allowedDomains, protocol)) {
|
||||
return next();
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
logger.warn(
|
||||
"router",
|
||||
`Blocked cross-origin request to ${req.url} (Sec-Fetch-Site: ${secFetchSite}, Sec-Fetch-Mode: ${secFetchMode}). Cross-origin subresource requests are not allowed on the dev server for security reasons.`
|
||||
);
|
||||
res.statusCode = 403;
|
||||
res.setHeader("Content-Type", "text/plain");
|
||||
res.end("Cross-origin request blocked");
|
||||
};
|
||||
}
|
||||
export {
|
||||
secFetchMiddleware
|
||||
};
|
||||
Reference in New Issue
Block a user