HTTP 标头

Headers

Headers

简介

Masonite 允许您轻松地向应用程序添加头部信息。 Masonite 添加了一些合理的默认值,但您可以根据需要对其进行修改。

配置

您需要做的就是将中间件添加到config / middleware.py文件中的HTTP_MIDDLEWARE常量中:

from masonite.middleware import SecureHeadersMiddleware

HTTP_MIDDLEWARE = [
    ...
    SecureHeadersMiddleware,
]

这将为您的服务器添加以下默认头部信息:

'Strict-Transport-Security': 'max-age=63072000; includeSubdomains'
'X-Frame-Options': 'SAMEORIGIN'
'X-XSS-Protection': '1; mode=block'
'X-Content-Type-Options': 'nosniff'
'Referrer-Policy': 'no-referrer, strict-origin-when-cross-origin'
'Cache-control': 'no-cache, no-store, must-revalidate'
'Pragma': 'no-cache'

覆盖标题

如果要更改或添加任何头部信息,只需在config / middleware.py文件中指定它们,该中间件将自动选择它们。例如,您可以像这样更改X-Frame-Options标头:

config/middleware.py

SECURE_HEADERS = {
   'X-Frame-Options' : 'deny'
}

然后将您的头部信息更改为:

'Strict-Transport-Security': 'max-age=63072000; includeSubdomains'
'X-Frame-Options': 'deny'
'X-XSS-Protection': '1; mode=block'
'X-Content-Type-Options': 'nosniff'
'Referrer-Policy': 'no-referrer, strict-origin-when-cross-origin'
'Cache-control': 'no-cache, no-store, must-revalidate'
'Pragma': 'no-cache'

注意我们新头部信息中的更改。

CORS

您也可以选择将 CORS 用于您的应用程序以获得高级安全措施。使用 CORS 与上面的头部信息非常相似。

该中间件必须位于HTTP_MIDDLEWARE堆栈的 TOP 处,以便请求不会在其他中间件中被拒绝。

若要开始,只需将CorsProvider类导入您的config / providers.py文件并将其添加到您的PROVIDERS列表中:

from masonite.providers import CorsProvider
...
PROVIDERS = [
    AppProvider,
    CorsProvider,
    ...,
]

然后在您的config / middleware.py文件中,您可以将 CORS 标头作为字典。下面是一个合理的默认值列表:

from masonite.middleware import CorsMiddleware
...
HTTP_MIDDLEWARE = [
    ...,
]

ROUTE_MIDDLEWARE = [
    ...,
]

...

CORS = {
    'Access-Control-Allow-Origin': "*",
    "Access-Control-Allow-Methods": "DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT",
    "Access-Control-Allow-Headers": "Content-Type, Accept, X-Requested-With",
    "Access-Control-Max-Age": "3600",
    "Access-Control-Allow-Credentials": "true"
}

现在,如果您转到浏览器,您将看到这些头部信息作为服务器的响应发送。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
Summer
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~