Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ricardoferreirasilva/nestjs-referers

Decorator based validation for request referers in NestJS.
https://github.com/ricardoferreirasilva/nestjs-referers

decorator http nestjs nestjs-referers referers request

Last synced: 27 days ago
JSON representation

Decorator based validation for request referers in NestJS.

Awesome Lists containing this project

README

        



Nest Logo

NestJS Referers


Decorator based validation for request referers.




Built with NestJS
CI Badge

### Introduction

NestJS Referers is a simple package that implements decorator based validation for the referer header of incoming HTTP requests.
The adopted syntax for specifying allowed URL's was based on [Algolia's](https://www.algolia.com/doc/guides/security/api-keys/in-depth/api-key-restrictions/) example.

A few examples:
- https://algolia.com/* will restrict access to all referers starting with https://algolia.com
- *.algolia.com will restrict access to all referers ending with .algolia.com
- If you want to allow access for the full domain algolia.com, you can use *algolia.com/*

Regarding security, you should know that referers can be easily spoofed like any other HTTP header, so you should not rely on this technique alone for securing requests.

### Installation

```bash
npm i nestjs-referers --save
```

### Basic usage

You can checkout the usage of this package with this example.

**test.controller.ts**

```typescript
import { Controller,Get} from '@nestjs/common';
import { ValidateReferers } from "nestjs-referers"

@Controller('test')
export class TestController {
constructor(){}

@Get('/')
@ValidateReferers("*localhost*","https://website/*")
async testRoute() {
return "OK"
}
}

```

### Installation for Development

1. Clone the repo
2. Run npm/yarn install

```bash
cd nestjs-referers
npm install
```

## Change Log

See [Changelog](CHANGELOG.md) for more information.

## Contributing

All contributions are welcome! Check out [Contributing](CONTRIBUTING.md).

## Author

**Ricardo Ferreira da Silva (Check out my [Website](https://ricardoferreirasilva.pt))**

## License

Licensed under the MIT License - see the [LICENSE](LICENSE) file for details.