content_length_validator 1.2.1

SDKdartflutter
Platformandroidioswindowslinuxmacosweb

Middleware for Shelf and Dart Frog to block too large requests.

Dart Content Length Validator

Ensures that your application is not vulnerable to large payload attacks. Inspired by https://github.com/ericmdantas/express-content-length-validator

Installing

dart pub add content_length_validator

Usage

As shelf middleware

import 'package:content_length_validator/content_length_validator.dart';

  var handler = const Pipeline()
      .addMiddleware(
        maxContentLengthValidator(
          maxContentLength: YOUR_CONTENT_LENGTH,
        ),
      )
      .addMiddleware(logRequests())
      .addHandler(_echoRequest);

As dart_frog middleware

import 'package:content_length_validator/content_length_validator.dart';

Handler maxContentLengthValidator(Handler handler) {
    return handler.use(fromShelfMiddleware(maxContentLengthValidator(maxContentLength: YOUR_CONTENT_LENGTH,)));
}

Defining custom error response

.addMiddleware(
    maxContentLengthValidator(
      maxContentLength: YOUR_CONTENT_LENGTH,
      errorResponse: Response(
        413,
        body: 'Your body is too long',
        ),
      ),
    ),
  ),