Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

django-security

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-security

Models, views, middlewares and forms to facilitate security hardening of Django applications.

  • 1.0.4
  • PyPI
  • Socket score

Maintainers
1

Django-Security

Build Status

This package offers a number of models, views, middlewares and forms to facilitate security hardening of Django applications.

Full documentation

Automatically generated documentation of django-security is available on Read The Docs:

Requirements

  • Python >=3.12
  • Django ~4.2

Installation

Install from Python packages repository:

pip install django-security

If you prefer the latest development version, install from django-security repository on GitHub:

git clone https://github.com/sdelements/django-security.git
cd django-security
poetry install

Adding to Django application's settings.py file:

INSTALLED_APPS = (
    ...
    'security',
    ...
)

Middleware modules can be added to MIDDLEWARE list in settings file:

MIDDLEWARE = (
    ...
    'security.middleware.LoginRequiredMiddleware',
    ...
)

Unlike the modules listed above, some other modules require configuration settings, fully described in django-security documentation. Brief description is provided below.

Middleware

Provided middleware modules will modify web application's output and input and in most cases requires no or minimum configuration.

MiddlewareDescriptionConfiguration
ClearSiteDataMiddlewareSend Clear-Site-Data header in HTTP response for any page that has been whitelisted. Recommended.Required.
ContentSecurityPolicyMiddlewareSend Content Security Policy (CSP) header in HTTP response. Recommended, requires careful tuning.Required.
LoginRequiredMiddlewareRequires a user to be authenticated to view any page on the site that hasn't been white listed.Required.
MandatoryPasswordChangeMiddlewareRedirects any request from an authenticated user to the password change form if that user's password has expired.Required.
NoConfidentialCachingMiddlewareAdds No-Cache and No-Store headers to confidential pages.Required.
ReferrerPolicyMiddlewareSpecify when the browser will set a `Referer` header.Optional.
SessionExpiryPolicyMiddlewareExpire sessions on browser close, and on expiry times stored in the cookie itself.Required.
ProfilingMiddlewareA simple middleware to capture useful profiling information in Django.Optional.

Views

csp_report

View that allows reception of Content Security Policy violation reports sent by browsers in response to CSP header set by ``ContentSecurityPolicyMiddleware`. This should be used only if long term, continuous CSP report analysis is required. For one time CSP setup CspBuilder is much simpler.

This view can be configured to either log received reports or store them in database. See documentation for details.

require_ajax

A view decorator which ensures that the request being processed by view is an AJAX request. Example usage:

@require_ajax
def myview(request):
    ...

Models

CspReport

Content Security Policy violation report object. Only makes sense if ContentSecurityPolicyMiddleware and csp_report view are used. With this model, the reports can be then analysed in Django admin site.

PasswordExpiry

Associate a password expiry date with a user.

Logging

All django-security modules send important log messages to security facility. The application should configure a handler to receive them:

LOGGING = {
    ...
    'loggers': {
        'security': {
            'handlers': ['console',],
            'level': 'INFO',
            'propagate': False,
            'formatter': 'verbose',
        },
    },
    ...
}

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc