This commit is contained in:
xion 2025-03-27 11:56:17 +08:00
parent 50fab1e6df
commit 69b5a02449
3 changed files with 25 additions and 1 deletions

View File

@ -0,0 +1,11 @@
/**
*
* @param html
* @returns
*/
export const addStat = (html: string) => {
return html.replace(
'</head>',
`<script defer src="https://umami.xiongxiao.me/script.js" data-website-id="79e7aa98-9e6e-4eef-bc8b-9cbd0ecb11c3"></script></head>`,
);
};

View File

@ -1,4 +1,4 @@
import { getDNS, isLocalhost } from '@/utils/dns.ts'; import { getDNS, isIpv4OrIpv6, isLocalhost } from '@/utils/dns.ts';
import http from 'http'; import http from 'http';
import { UserApp } from './get-user-app.ts'; import { UserApp } from './get-user-app.ts';
import { config, fileStore } from '../module/config.ts'; import { config, fileStore } from '../module/config.ts';
@ -104,6 +104,13 @@ export const handleRequest = async (req: http.IncomingMessage, res: http.ServerR
// app = 'codeflow'; // app = 'codeflow';
// domainApp = true; // domainApp = true;
} else { } else {
if (isIpv4OrIpv6(dns.hostName)) {
// 打印出 req.url 和错误信息
console.error('Invalid domain: ', req.url, dns.hostName);
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Invalid domain\n');
return res.end();
}
// 验证域名 // 验证域名
if (dns.hostName !== domain) { if (dns.hostName !== domain) {
// redis获取域名对应的用户和应用 // redis获取域名对应的用户和应用

View File

@ -9,3 +9,9 @@ export const getDNS = (req: http.IncomingMessage) => {
export const isLocalhost = (hostName: string) => { export const isLocalhost = (hostName: string) => {
return hostName.includes('localhost') || hostName.includes('192.168'); return hostName.includes('localhost') || hostName.includes('192.168');
}; };
export const isIpv4OrIpv6 = (hostName: string) => {
const ipv4 = /^(\d{1,3}\.){3}\d{1,3}$/;
const ipv6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
return ipv4.test(hostName) || ipv6.test(hostName);
};