跳转到主要内容

在您的Django应用上设置草稿安全HTTP头Permissions-Policy(之前称为Feature-Policy)。

项目描述

https://img.shields.io/github/actions/workflow/status/adamchainz/django-permissions-policy/main.yml.svg?branch=main&style=for-the-badge https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge https://img.shields.io/pypi/v/django-permissions-policy.svg?style=for-the-badge https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge pre-commit

在您的Django应用上设置草稿安全HTTP头Permissions-Policy(之前称为Feature-Policy)。


更聪明、更快速地工作,通过我的书提升您的Django DX,它涵盖了提高您的开发体验的许多方法。


要求

支持Python 3.8到3.12。

支持Django 3.2到5.1。

安装

  1. 使用pip安装

python -m pip install django-permissions-policy

2. 在您的MIDDLEWARE设置中添加中间件。最好在Django的SecurityMiddleware之后添加,以便在堆栈中的同一位置添加头

MIDDLEWARE = [
    ...,
    "django.middleware.security.SecurityMiddleware",
    "django_permissions_policy.PermissionsPolicyMiddleware",
    ...,
]
  1. PERMISSIONS_POLICY设置添加到您的设置中,至少命名一个功能。以下是一个设置严格策略以禁用所有可能侵犯隐私和令人讨厌的功能的示例

    PERMISSIONS_POLICY = {
        "accelerometer": [],
        "ambient-light-sensor": [],
        "autoplay": [],
        "camera": [],
        "display-capture": [],
        "document-domain": [],
        "encrypted-media": [],
        "fullscreen": [],
        "geolocation": [],
        "gyroscope": [],
        "interest-cohort": [],
        "magnetometer": [],
        "microphone": [],
        "midi": [],
        "payment": [],
        "usb": [],
    }

    有关设置的更多信息,请参阅下文。

设置

更改PERMISSIONS_POLICY设置以配置头的内

该设置应该是一个字典,按照以下内容展开

如果键或值无效,则在实例化时或处理响应时将引发ImproperlyConfigured异常。当前功能列表通过 Chrome 和 Firefox 中的 document.featurePolicy.allowedFeatures() 从 JavaScript API 中获取。浏览器并不总是能识别所有功能,这取决于版本和配置。您可能会在控制台看到关于头信息中不可用功能的警告 - 这些通常可以安全忽略,因为 django-permissions-policy 已经验证了您没有完全未知的名字。

为了与旧配置保持向后兼容,列表中支持'none'值,但将被忽略 - 使用空列表更佳。在与其他值一起指定'none'没有意义。

示例

完全禁用地理位置,对于当前起源和所有iframe

PERMISSIONS_POLICY = {
    "geolocation": [],
}

仅允许来自当前起源和来自https://archive.org的iframe自动播放

PERMISSIONS_POLICY = {
    "autoplay": ["self", "https://archive.org"],
}

允许所有起源自动播放

PERMISSIONS_POLICY = {
    "autoplay": "*",
}

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

django_permissions_policy-4.21.0.tar.gz (10.1 kB 查看哈希值)

上传时间

构建分布

django_permissions_policy-4.21.0-py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 3

支持