https://github.com/vfk/inbetween
Minimal HTTP MITM-proxy for Node.js
https://github.com/vfk/inbetween
Last synced: over 1 year ago
JSON representation
Minimal HTTP MITM-proxy for Node.js
- Host: GitHub
- URL: https://github.com/vfk/inbetween
- Owner: VFK
- License: mit
- Created: 2014-02-07T17:13:11.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-02-09T15:02:21.000Z (over 12 years ago)
- Last Synced: 2025-02-15T21:32:34.007Z (over 1 year ago)
- Language: JavaScript
- Size: 133 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Inbetween [![NPM version][npm-image]][npm-url]
A fast and simple MITM-proxy for Node.js. No https support for now.
## Installation
Install `inbetween` via NPM:
```shell
npm install inbetween
```
Create `main.js` like so:
```javascript
var Proxy = require('inbetween');
var proxy = new Proxy(8080);
```
Run your `main.js`:
```shell
node main.js
```
That's it, now tell you apps to use **localhost:8080** as an HTTP proxy.
## API
#### proxy.rewriteUrl(url)
Type: `String`
Full URL, for example http://something.com/index.php?test=true
Simple example:
```javascript
// Route any request to nodejs website
proxy.rewriteUrl = function(url) {
url = 'http://nodejs.org';
return url;
}
```
Advanced example:
```javascript
// Make http://test.com?hello=world to be http://test.com?hello=wild
var qs = require('querystring');
....
proxy.rewriteUrl = function(url) {
var parts = url.split('?');
if (parts.length === 2) {
var obj = qs.parse(parts[1]);
obj['hello'] = 'wild';
parts[1] = qs.stringify(obj);
}
return parts.join('?');
}
```
Remember to always return your url.
#### proxy.rewriteHeaders(headers)
Type: `Object`
Request headers. More info in Node.js docs: [http.IncomingMessage.headers](http://nodejs.org/api/http.html#http_message_headers)
```javascript
// Spoof user-agent
proxy.rewriteHeaders = function(headers) {
headers['user-agent'] = 'NSA-agent v3.5.7';
return headers;
}
```
Remember to always return your headers object.
#### proxy.rewriteData(data)
Type: `String`
POST data. Usually looks like *user=MegaDestroyer98&password=123321*
Rewrite it the same way as you rewrite an url.
Remember to always return your data.
[npm-url]: https://npmjs.org/package/inbetween
[npm-image]: https://badge.fury.io/js/inbetween.png