Skip to content

Security

Added in v1.3.0.

CspGenerator

A utility class to generate a CSP.

Examples

from tna_utilities.security import CspGenerator

generator = CspGenerator()

# Add a single directive source (plus 'self')
generator.script_src("example.com")

# Add multiple sources for a directive (plus 'self')
generator.style_src("example.com", "another.net")

# Add a directive source without allowing 'self'
generator.object_src("example.com", omit_self=True)

# Disallow a directive
generator.disallow("worker-src")

generator.get_csp()
# default-src 'self'; script-src 'self' example.com; style-src 'self' example.com another.net; object-src example.com; worker-src 'none';

security_headers

Get a dictionary of common security headers.

Arguments

Argument Description Default
x_frame_options The option for the X-Frame-Options header DENY
x_permitted_cross_domain_policies The option for the X-Permitted-Cross-Domain-Policies header none
cross_origin_embedder_policy The option for the Cross-Origin-Embedder-Policy header unsafe-none
cross_origin_opener_policy The option for the Cross-Origin-Opener-Policy header same-origin
cross_origin_resource_policy The option for the Cross-Origin-Resource-Policy header same-origin

Example

from tna_utilities.security import security_headers

print(security_headers())
# {
#   "X-Frame-Options": "DENY",
#   "X-Permitted-Cross-Domain-Policies": "none",
#   "Cross-Origin-Embedder-Policy": "unsafe-none",
#   "Cross-Origin-Opener-Policy": "same-origin",
#   "Cross-Origin-Resource-Policy": "same-origin",
# }