Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
straightforward
Advanced tools
Readme
A straightforward forward-proxy written in Node.js
# Use directly with no installation (npx is part of npm):
❯❯❯ npx straightforward --port 9191
# Or install globally:
❯❯❯ npm install -g straightforward
❯❯❯ straightforward --help
Usage: straightforward --port 9191 [options]
Options:
--version Show version number [boolean]
-p, --port Port to bind on [number] [default: 9191]
-a, --auth Enable proxy authentication [string]
-e, --echo Enable echo mode (mock all http responses) [boolean]
-d, --debug Enabled debug output [boolean]
-c, --cluster Run a cluster of proxies (using number of CPUs) [boolean]
--cluster-count Specify how many cluster workers to spawn [number]
-q, --quiet Suppress request logs [boolean]
-s, --silent Don't print anything to stdout [boolean]
-h, --help Show help [boolean]
Examples:
straightforward --auth "user:pass" Require authentication
straightforward --echo Mock responses for all http requests
Use with cURL:
curl --proxy https://localhost:9191 'http://example.com' -v
curl --proxy https://user:pass@localhost:9191 'http://example.com' -v
// ESM/TS: import { Straightforward, middleware } from "straightforward"
const { Straightforward, middleware } = require("straightforward")
;(async () => {
// Start proxy server
const sf = new Straightforward()
await sf.listen(9191)
console.log(`Proxy listening on http://localhost:9191`)
// Log http requests
sf.onRequest.use(async ({ req, res }, next) => {
console.log(`http request: ${req.url}`)
// Note the common middleware pattern, use `next()`
// to pass the request to the next handler.
return next()
})
// Log connect (https) requests
sf.onConnect.use(async ({ req }, next) => {
console.log(`connect request: ${req.url}`)
return next()
})
// Use built-in middleware for authentication
sf.onRequest.use(middleware.auth({ user: "bob", pass: "alice" }))
sf.onConnect.use(middleware.auth({ user: "bob", pass: "alice" }))
// Use built-in middleware to mock responses for all http requests
sf.onRequest.use(middleware.echo)
})()
❯❯❯ straightforward --port 9191
Let's say you have a fresh linux server and want to use it as an authenticated forward proxy quickly.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install node && nvm use node && node --version
npm install -g forever straightforward
forever start --id "proxy1" $( which straightforward ) --port 9191 --quiet --auth 'user:foobar'
curl --proxy http://user:foobar@SERVER:9191/ http://canhazip.com
forever list
forever stop proxy1
Middlewares triggered when http requests occur
sf.onRequest.use(async ({ req, res }, next) => {
console.log(`http request: ${req.url}`)
// Note the common middleware pattern, use `next()`
// to pass the request to the next handler.
return next()
})
Middlwares can be chained:
sf.onRequest.use(
async ({ req, res }, next) => {
console.log(`middleware1`)
return next()
},
async ({ req, res }, next) => {
console.log(`middleware2`)
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" })
res.end("Hello world")
}
)
Middlewares triggered when http request responses are available
sf.onResponse.use(async ({ req, res, proxyRes }, next) => {
console.log(`http response`)
return next()
})
Middlewares triggered when https and wss requests occur
sf.onConnect.use(async ({ req, clientSocket, head }, next) => {
console.log(`connect request`)
return next()
})
MIT
FAQs
A straightforward forward-proxy.
The npm package straightforward receives a total of 464 weekly downloads. As such, straightforward popularity was classified as not popular.
We found that straightforward demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.