Added maximum request body size limiting.

Fixes #19.
master
Stanislav Nikitin 3 years ago
parent 47672c586d
commit 5f58741159
No known key found for this signature in database
GPG Key ID: 106900B32F8192EE
  1. 4
      examples/fastpastebin.yaml.dist
  2. 7
      internal/config/http.go
  3. 1
      internal/context/http_server.go

@ -4,7 +4,7 @@ database:
# Database type. The only supported ATM is "mysql" and "flatfiles".
type: "flatfiles"
# Path for data stored with "flatfiles" database adapter.
# Will be comletely ignored for MySQL/MariaDB.
# Will be completely ignored for MySQL/MariaDB.
path: "./data"
# Next parameters are strictly for MySQL/MariaDB connections and
# will be ignored by "flatfiles" adapter.
@ -31,6 +31,8 @@ http:
# will allow HTTP requests. Useful for developing or if you're
# running Fast Pastebin behind reverse proxy that does SSL termination.
allow_insecure: true
# Maximum body size in megabytes. 1 should be enough for most use cases.
max_body_size_megabytes: 1
# Pastes configuration.
pastes:

@ -26,7 +26,8 @@ package config
// HTTP describes HTTP server configuration.
type HTTP struct {
Address string `yaml:"address"`
Port string `yaml:"port"`
AllowInsecure bool `yaml:"allow_insecure"`
Address string `yaml:"address"`
Port string `yaml:"port"`
AllowInsecure bool `yaml:"allow_insecure"`
MaxBodySizeMegabytes string `yaml:"max_body_size_megabytes"`
}

@ -13,6 +13,7 @@ func (c *Context) initializeHTTPServer() {
c.Echo = echo.New()
c.Echo.Use(c.echoReqLogger())
c.Echo.Use(middleware.Recover())
c.Echo.Use(middleware.BodyLimit(c.Config.HTTP.MaxBodySizeMegabytes + "M"))
c.Echo.DisableHTTP2 = true
c.Echo.HideBanner = true
c.Echo.HidePort = true

Loading…
Cancel
Save