Morepath的内容安全策略
项目描述
用法
为了使用默认内容安全策略保护所有视图
from morepath import App
from more.content_security import ContentSecurityApp
from more.content_security import ContentSecurityPolicy
from more.content_security import SELF
class MyApp(App, ContentSecurityApp):
pass
@MyApp.setting('content_security_policy', 'default')
def default_policy():
return ContentSecurityPolicy(
default_src={SELF},
script_src={SELF, 'https://analytics.example.org'}
)
为了扩展模型默认视图的默认策略
@MyApp.view(model=Document)
def view_document(self, request):
# the actual default policy is not modified here!
request.content_security_policy.script_src.add('https://cdnjs.com')
....
我们还可以使用完全不同的策略
@MyApp.view(model=Document)
def view_document(self, request):
request.content_security_policy = ContentSecurityPolicy()
此外,我们可以在内联脚本/样式中使用nonce。这些将自动添加到“script-src”,“style-src”指令
@MyApp.html(model=Document)
def view_document(self, request):
return """
<html>
...
<script nonce="{}">...</script>
</html>
""".format(request.content_security_policy_nonce('script'))
注意我们使用自定义请求类用于nonce。如果您有自己的,您需要如下扩展它
from morepath.request import Request
from more.content_security import ContentSecurityRequest
class CustomRequest(Request, ContentSecurityRequest):
pass
class MyApp(App, ContentSecurityApp):
request_class = CustomRequest
要仅使用“Content-Security-Policy-Report-Only”头,请使用此
@MyApp.setting('content_security_policy', 'default')
def default_policy():
return ContentSecurityPolicy(
report_only=True,
default_src={SELF}
)
运行测试
安装tox并运行它
pip install tox tox
限制测试到特定的Python版本
tox -e py27
约定
more.content_security尽可能遵循PEP8。要测试它,请运行
tox -e pep8
more.content_security使用语义版本控制
构建状态
覆盖率
最新PyPI发布
许可证
more.content_security是在修订的BSD许可证下发布的
变更日志
0.2.0 (2018-02-02)
添加了覆盖策略应用函数的能力。[链接]
添加了缺失的UNSAFE_EVAL常量。[链接]
0.1.0 (2018-02-01)
初始发布。[链接]
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装软件包的更多信息。
源代码分发
more.content_security-0.2.0.tar.gz (7.0 kB 查看哈希值)
构建分发
关闭
more.content_security-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a58d8213bb52acfae6399aa7ffd5f6a32e72aa76dcdbdf6394d37dce4c2f98b |
|
MD5 | 739783e00247957201ad601c459bf083 |
|
BLAKE2b-256 | 5768dcaec1cc884a3defb15b793ab70ea0c7cb195d0a0c994b47fde2c2be54ae |
关闭
more.content_security-0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f3c7d4a732e2e655d5e641e519713014b675a5e0bbe81f7a91e012db6b60cde3 |
|
MD5 | 087f4a6b81029d1289c6317e09c057a5 |
|
BLAKE2b-256 | 2bf206a5a4f91787609186e991e22cfb14e05eed560cafe451772986c6bcd3c2 |