# check-referrer

> middleware for routing requests based on referrer

Latest version **0.0.7** (published 2014-05-26) · ISC license · 0 weekly downloads

## Install

```sh
npm install check-referrer
pnpm add check-referrer
yarn add check-referrer
bun add check-referrer
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.7 |
| Published | 2014-05-26 |
| First published | 2014-05-17 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | esco |
| Maintainers | esco |
| Keywords | referrer, block referrer, redirect, redirect referrer |

## Links

- npm: https://www.npmjs.com/package/check-referrer
- Repository: https://github.com/heftybyte/check-referrer
- Issues: https://github.com/heftybyte/check-referrer/issues
- npm.io page: https://npm.io/package/check-referrer

## Recent versions

- 0.0.7 (latest) — 2014-05-26
- 0.0.6 — 2014-05-26
- 0.0.5 — 2014-05-26
- 0.0.4 — 2014-05-26
- 0.0.3 — 2014-05-18
- 0.0.2 — 2014-05-17
- 0.0.1 — 2014-05-17

## README

check-referrer
==============

middleware for routing requests based on referrer

```
npm install check-referrer
```

###checkReferrer

**Params**:
*   rules _String_

    list of routing rules
    * _-_ means exclude from redirect
    * _+_ means only exclude from redirect

*   redirect _String_

    route for redirect

req.fromAllowedReferrer will be set to true for whitelisted referrers

examples
========

By default, all requests are redirected.

To exclude urls from redirection use '-'


```javascript
// Whitelist requests from example.com
var checkReferrer = require('check-referrer');
app.use(checkReferrer('-example.com'));
// req.fromAllowedReferrer will be set to true in all middleware that runs after a request from example.com
```


```javascript
// Only allow and whitelist requests from example.com
var checkReferrer = require('check-referrer');
app.use(checkReferrer('-example.com', '/redirect-here'));
```

To redirect only specific urls while allowing all others, use '+'

```javascript
// Only redirect requests from example.com
var checkReferrer = require('check-referrer');
app.use(checkReferrer('+example.com', '/redirect-here'));
```

Seperate rules with a comma

```javascript
// Only allow requests from certain domains
var checkReferrer = require('check-referrer');
app.use(checkReferrer('-example.com,-mysite.com,-othersite.com', '/redirect-here'));
```

The rule doesn't have to be a url

```javascript
// Only allow visitors with a secret referrer key
var checkReferrer = require('check-referrer');
app.use(checkReferrer('-my_secret_key', '/redirect-here'));
```

caveats
=======
This is "security" by obscurity, similar to passwords. If somone knows your password, then its useless. Likewise, if the visitor knows which referrers are allowed, they can easily spoof their referrer.

---
_Source: https://npm.io/package/check-referrer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
