Titanium Networks main web proxy. Successor to Alloy
npm i corrosion
const Corrosion = require('corrosion');
const proxy = new Corrosion();
const http = require('http')
http.createServer((req, res) =>
proxy.request(req, res) // Request Proxy
).on('upgrade', (req, socket, head) =>
proxy.upgrade(req, socket, head) // WebSocket Proxy
).listen(80);Access a website by going to /prefix/gateway?url=URL
Much more in depth one is in the demo folder.
configprefixString - URL Prefixtitle(Boolean / String) - Title used for HTML documentswsBoolean - WebSocket rewritingcookieBoolean - Request CookiescodecString - URL encoding (base64, plain, xor).requestMiddlewareArray - Array of middleware functions for proxy request (Server).responseMiddlewareArray - Array of middleware functions for proxy response (Server).standardMiddlewareBoolean - Use the prebuilt middleware used by default (Server).
requestRequestresponseResponse
requestRequestsocketSocketheadHead
Bundles scripts for client injection. Important when updating proxy.
valStringconfigConfigurationbaseWHATWG URLoriginLocation origin - Adds a location origin before the proxy urlflagsArray - ['xhr'] => /service/xhr_/https%3A%2F%2Fexample.org/
valStringconfigConfigurationoriginLocation origin - Required if a location origin starts before the proxy urlflagsBoolean - Returns with both the URL and flags found { value: 'https://example.org', flags: ['xhr'], })leftoversBoolean - Use any leftovers if any after the encoded proxy url
-
regexRegex used to determine to rewrite the URL or not. -
prefixURL Prefix -
codec(base64, plain, xor)
sourceJS scripturlURL for heading
astJS ASTCallbackHandler initated on AST node
urlURL for heading
calleeAcorn.js NodeargsArray
elementsArray
nameIdentifier namepreventRewritePrevent further rewrites
valueLiteral value
sourceCSSconfigConfigurationbaseWHATWG URLoriginLocation origincontextCSS-Tree context
sourceHTML SourceconfigConfigurationdocumentDetermines of its a document or fragment for parsingbaseWHATWG URLoriginLocation origin
processedRewritten HTMLconfigConfigurationdocumentDetermines of its a document or fragment for parsing
mapMap for attribute rewriting
inputNew (Cookie / Cookies)configConfigurationurlWHATWG URLdomainCookie DomainsecureCookie Secure
storeEncoded CookiesconfigConfigurationurlWHATWG URL
strString
Middleware are functions that will be executed either before request or after response. These can alter the way a request is made or response is sent.
function(ctx) {r
ctx.body; // (Request / Response) Body (Will return null if none)
ctx.headers; // (Request / Response) Headers
ctx.url; // WHATWG URL
ctx.flags; // URL Flags
ctx.origin; // Request origin
ctx.method; // Request method
ctx.rewrite; // Corrosion object
ctx.statusCode; // Response status (Only available on response)
ctx.agent; // HTTP agent
ctx.address; // Address used to make remote request
ctx.clientSocket; // Node.js Server Socket (Only available on upgrade)
ctx.clientRequest; // Node.js Server Request
ctx.clientResponse; // Node.js Server Response
ctx.remoteResponse; // Node.js Remote Response (Only available on response)
};-
Request
- requestHeaders
-
Response
- responseHeaders
- decompress
- rewriteBody
arrArray of IP addresses to use in request
const Corrosion = require('corrosion');
const proxy = new Corrosion({
requestMiddleware: [
Corrosion.middleware.address([
0.0.0.0,
0.0.0.0
]),
],
});arrArray of hostnames to block clients from seeingpageBlock page
const Corrosion = require('corrosion');
const proxy = new Corrosion({
requestMiddleware: [
Corrosion.middleware.blacklist([
'example.org',
'example.com',
], 'Page is blocked'),
],
});- Inject header much more property in JS rewriter (because of import statements)