Socket
Socket
Sign inDemoInstall

byespam

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    byespam

Protect your API using a filter for all your users' requests.


Version published
Weekly downloads
1
decreased by-66.67%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Byespam

With byespam you can protect your websites and API with a high level spam protection.

Installation

  • npm i byespam

Usage

Before see it in action, you have to learn about options and syntax.

Basic sketch

const byespam = require('byespam')([
	/* all filters you want to apply */	
]);

Inside of the parameter

After having required the package, you have to declare what protections you want to apply, and you can do it by adding them inside of the module constructor parameter. This argument must be an array, since you can actually put how many protections you want.

Example of a protection

{ "max_requests": 5, "protection_timeout": 10000, "effect": "Nope", "path": "/test" }

With this, you are telling library to create a protection on path '/test', saying that user can take at mos 5 requests in 10,000ms (10 seconds)

max_requests

This variable is used to set how many requests the user could do inside of the timeout range

protection_timeout

After how many times can the user continue to making requests after he stops?

effect

This is the consequence that the user sees if the request is blocked.

It can be of three types:

  • object
  • function
  • string

If you use object type, the header 'Content-Type' will be changes into 'application/json' and the object will be sended as a string to the user,

If you use function type, the function will be called with 3 arguments passed in respectively: request, response and IP Address

How to apply the protected routes

It's easy, just do

app.use(...byespam.all);

After declaring byespam and app;

Final & examples

If the user's request go fine, you can set app a routes for this, example:

const byespam = require('byespam')( [  { path: '/', effect: (req, res) => res.render('429'), max_requests: 1, protection_timeout: 4000 }  ] );

app.use(...byespam.all);

app.get('/', (req, res) => res.send('Yep!'));

Obviously you can use the "effect" function to do this as well, but for making the sketch more tidy, you can use routes.

Keywords

FAQs

Last updated on 23 Nov 2020

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc