A simple HTTP server with security features like IP blocking, rate limiting, and endpoint blocking.
npm install safe-blocklist-http-serverbash
npm install safe-blocklist-http-server
`
Usage
`javascript
const SafeHttpServer = require('safe-blocklist-http-server');
// A simple request handler app
const app = (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
};
// Configuration options
const options = {
expiryTime: 60000, // 1 minute
timeLimit: 60000, // 1 minute
requestLimit: 100,
blockedEndpoints: ['/blocked']
};
const server = new SafeHttpServer(3000, './blocklist.json', app, options);
server.listen();
console.log('Server listening on port 3000');
`
Features
$3
The server can block IP addresses. The blocklist is stored in a JSON file.
$3
The server limits the number of requests from a single IP address within a given time frame. If the limit is exceeded, the IP address is blocked.
$3
The server forgets about requests after a certain amount of time. This is useful to prevent the request map from growing indefinitely.
$3
The server can be configured to immediately block requests to specific endpoints.
API
$3
Creates a new SafeHttpServer instance.
* port (Number): The port to listen on.
* blocklistPath (String): The path to the blocklist JSON file.
* app (Function): The request handler function.
* options (Object): Configuration options.
* expiryTime (Number): The time in milliseconds after which a request is forgotten. Defaults to 60000.
* timeLimit (Number): The time in milliseconds for the rate limiting window. Defaults to 60000.
* requestLimit (Number): The maximum number of requests allowed from a single IP within the timeLimit. Defaults to 100.
* blockedEndpoints (Array): An array of endpoint URLs to block immediately. Defaults to []`.