Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

forwarded-http

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forwarded-http

Resolves RFC 7239 / Forwarded HTTP Extension, with fallback to all legacy & special Forward headers: `X-Forwarded-*`, `X-Real-*` and others

  • 0.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Forwarded HTTP version License

Resolves RFC 7239 (Forwarded HTTP Extension), with fallback to all legacy & special Forward headers: X-Forwarded-*, X-Real-*, Fastly-Client-IP, X-Cluster-Client-IP, and others.

Focuses on resolving to the RFC standard and providing a consistent access to HTTP Forwarded Parameters: by, for, host, proto.

Filter valid IPv4 or IPv6 IPs against glob pattern, array, string, regexp or matcher function.

Use as Express Middleware to populate req.forwarded object.

Build Status Downloads Code Climate Coverage Status Dependencies

Install

npm install --save forwarded-http

API

forwarded(http.IncomingMessage[, options])

var forwarded = require('forwarded-http')

var params = forwarded(req)

// filter IP ranges
var filteredParams = forwarded(req, {
  filter: ['1.0.?.*', '2001:db8:*']
})

// don't list private IPs
var filteredParams = forwarded(req, {
  allowPrivate: false
})

.port

The final proxied port before hitting this server

var params = forwarded(req)

params.port // '8000'

.for

Oject with IPs as key with matching port used as value (if applicable)

var params = forwarded(req)

params.for // { '0.0.0.1': '8000', '0.0.0.2': '8001' }

.proto

The final proxied protocol before hitting this server

var params = forwarded(req)

params.proto // 'https'

.host

The proxied host

var params = forwarded(req)

arams.host // 'foo.com'

.ports

Array of ports the client is connected through

var params = forwarded(req)

params.ports // ['8000', '8001']

.ips

Array of IP addresses the client is connected through

var params = forwarded(req)

params.ips // ['0.0.0.1', '0.0.0.2']

Middleware

Use as Express Middleware to populate req.forwarded object.

forwarded([options])

var express = require('express')
var forwarded = require('forwarded-http/lib/middleware')

var app = express()

// use with default options
app.use(forwarded())

// or with options
app.use(forwarded(req, {
  filter: ['1.0.?.*', '2001:db8:*'],
  allowPrivate: false
})

Support

Donations are welcome to help support the continuous development of this project.

Gratipay PayPal Flattr Bitcoin

License

MIT © Ahmad Nassri

Keywords

FAQs

Package last updated on 29 May 2015

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc