const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const btoa = (str) => Buffer.from(str).toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); const atob = (str) => { str = str.replace(/-/g, '+').replace(/_/g, '/'); while (str.length % 4) str += '='; return Buffer.from(str, 'base64').toString('utf-8'); }; const app = express(); const PORT = process.env.PORT || 3000; // --- [High-Performance UI] Cyber Grid & Glitch --- const UI = `
指定されたエンドポイントは存在しないか、検閲されました。
`; // --- [Backend: The God Engine] --- app.get('/', (req, res) => res.send(UI)); app.use('/tunnel/:target', (req, res, next) => { let targetUrl; try { targetUrl = atob(req.params.target); } catch (e) { return res.status(404).send(NOT_FOUND); } const urlObj = new URL(targetUrl); return createProxyMiddleware({ target: urlObj.origin, changeOrigin: true, secure: false, // 自己署名証明書サイトも許可 followRedirects: true, pathRewrite: { [`^/tunnel/${req.params.target}`]: urlObj.pathname + urlObj.search, }, onProxyReq: (proxyReq, req, res) => { // ヘッダーの偽装(プロキシだとバレないようにする) proxyReq.setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'); proxyReq.setHeader('Referer', urlObj.origin); }, onProxyRes: (proxyRes, req, res) => { // セキュリティ制限(CSP/Frame)を破壊して「全サイト表示」を可能にする delete proxyRes.headers['content-security-policy']; delete proxyRes.headers['content-security-policy-report-only']; delete proxyRes.headers['x-frame-options']; delete proxyRes.headers['x-content-type-options']; // クッキーのドメインを書き換えてログイン維持を可能にする if (proxyRes.headers['set-cookie']) { proxyRes.headers['set-cookie'] = proxyRes.headers['set-cookie'].map(cookie => cookie.replace(/domain=[^;]+;?/, '') ); } }, onError: (err, req, res) => { res.status(500).send(NOT_FOUND); } })(req, res, next); }); // すべての404を独自デザインに app.use((req, res) => res.status(404).send(NOT_FOUND)); app.listen(PORT, () => { console.log("================================"); console.log("GOD MODE PROXY: ACTIVE"); console.log(`PORT: ${PORT}`); console.log("================================"); });