Skip to content

HSTS

The HTTP Strict-Transport-Security response header (often abbreviated as HSTS) is a standard feature used to instruct clients that a site should only be accessed using HTTPS, and any attempt to access it using HTTP should be converted automatically to HTTPS.

BlackSheep offers a middleware to configure the HTTP Strict-Transport-Security response header globally. This page explains how to use the built-in middleware to enforce HSTS on a web application.

Enabling HSTS

from blacksheep import Application
from blacksheep.server.env import is_development
from blacksheep.server.security.hsts import HSTSMiddleware

app = Application()


if not is_development():
    app.middlewares.append(HSTSMiddleware())

Considerations for local development

It is generally undesirable to enable HSTS during local development, since browsers get instructed to require HTTPS for all traffic on localhost. This is why the example above configures the middleware only if the application is not running in development mode. See Defining application environment for more information.

Options

Option Type Description
max_age int Control the max-age directive of the HSTS header (default 31536000)
include_subdomains bool Control the include-subdomains directive of the HSTS header (default false)

For more information

For more information on HTTP Strict Transport Security, it is recommended to refer to the developer.mozilla.org documentation.

Last modified on: 2023-12-18 17:52:09

EW