init
This commit is contained in:
77
index.js
Normal file
77
index.js
Normal file
@@ -0,0 +1,77 @@
|
||||
import express from 'express';
|
||||
import multer from 'multer';
|
||||
import ws from 'ws';
|
||||
import EventEmitter from 'events';
|
||||
import cors from 'cors';
|
||||
|
||||
const upload = multer();
|
||||
const app = express();
|
||||
const port = process.env.PORT || 3000
|
||||
|
||||
const events = new EventEmitter();
|
||||
|
||||
app.use(cors());
|
||||
|
||||
app.get('/show-requests', ( _, res ) => {
|
||||
res.send('<!DOCTYPE html><HTML><head><title>REQUEST VIEWER</title></head><body><script src="/static-assets/web.js"></script><noscript><h1>This tool requires JavaScript</h1><br /></noscript>Please use developer console to see mirrored requests</body></HTML>');
|
||||
})
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
app.use(upload.array());
|
||||
|
||||
app.use('/static-assets', express.static('web-static'));
|
||||
|
||||
app.use( (req, res) => {
|
||||
const data = {
|
||||
body: req.body,
|
||||
headers: req.headers,
|
||||
ip: req.ip,
|
||||
path: req.path,
|
||||
protocol: req.protocol,
|
||||
xhr: req.xhr,
|
||||
subdomains: req.subdomains,
|
||||
secure: req.secure,
|
||||
ips: req.ips,
|
||||
hostname: req.hostname,
|
||||
method: req.method,
|
||||
protocol: req.protocol,
|
||||
params: req.params,
|
||||
query: req.query,
|
||||
route: req.route,
|
||||
signedCookie: req.signedCookies,
|
||||
cookies: req.cookies,
|
||||
fresh: req.fresh,
|
||||
stale: req.stale,
|
||||
baseUrl: req.baseUrl,
|
||||
originalUrl: req.originalUrl
|
||||
}
|
||||
events.emit('request', JSON.stringify(data));
|
||||
console.log(JSON.stringify(data));
|
||||
res.send("<!DOCTYPE html><html><body><a href=\"/show-requests\">Request Viewer</a><html>");
|
||||
});
|
||||
|
||||
const wsServer = new ws.Server({ noServer: true });
|
||||
wsServer.on('connection', socket => {
|
||||
socket.on('message', message => {
|
||||
if ( message === "PING" ) {
|
||||
return socket.send("PONG");
|
||||
}
|
||||
if ( message === "TEST" ) {
|
||||
return socket.send("TEST");
|
||||
}
|
||||
console.log(message);
|
||||
});
|
||||
const handler = (e) => socket.send(e);
|
||||
events.on('request', handler);
|
||||
socket.onclose = () => events.off('request', handler);
|
||||
})
|
||||
|
||||
const server = app.listen(port, () => {
|
||||
console.log(`LISTENING AT http://localhost:${port}`);
|
||||
})
|
||||
server.on('upgrade', (request, socket, head) => {
|
||||
wsServer.handleUpgrade(request, socket, head, (socket) => {
|
||||
wsServer.emit('connection', socket, request);
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user