Flask 是一个功能强大的 Web 框架,主要用于使用 Python 语言开发有趣的 Web 应用程序。在使用 Flask 开发这种 Web 应用程序时,更重要的是要确保我们的应用程序的安全性足够强,因为 talisman 的出现。 Talisman 基本上是一个Flask 扩展,用于添加 HTTP 安全标头我们的 Flask 应用程序易于实施,这将帮助我们保护应用程序免受常见的 Web 攻击,从而导致应用程序安全性受到干扰。
关键术语
在我们的应用程序中实现护身符的一些关键术语如下:
1.HTTP 安全标头: HTTP 安全标头是服务器发送到客户端的附加信息,这将有助于保护我们的应用程序免受 Web 攻击。
2.Flask: 它是一个用于开发 Web 应用程序的 Python Web 框架。
3.Talisman: Talisman 是一个 Flask 扩展,将用于向我们的 Flask 应用程序及其内部功能添加 HTTP 安全标头。
所需模块
pip install Flask
pip install Flask-Talisman
创建 Flask Talisman 应用程序的步骤
第1步:导入护身符
第一步之后,我们现在已经成功地将 Talisman 安装到我们的系统中,现在要在我们的 Web 应用程序中使用它,我们需要将其导入到我们的 Flask 应用程序中,如下所示。
Python3
from flask import Flask
from flask_talisman import Talisman
app = Flask(__name__)
talisman = Talisman(app)
第2步:配置护身符
现在我们的 Web 应用程序中已经导入了 Talisman 扩展,现在要知道我们的导入是否正常,我们需要通过设置 HTTP 安全标头来配置 Talisman。我们只需将以下代码添加到 Flask 应用程序即可做到这一点。
Python3
csp = {
'default-src': [
'\'self\'',
'https://code.jquery.com',
'https://cdn.jsdelivr.net'
]
}
# HTTP严格传输安全(HSTS)标头
hsts = {
'max-age': 31536000,
'includeSubDomains': True
}
# 强制HTTPS和其他标头
talisman.force_https = True
talisman.force_file_save = True
talisman.x_xss_protection = True
talisman.session_cookie_secure = True
talisman.session_cookie_samesite = 'Lax'
talisman.frame_options_allow_from = 'https://www.google.com'
# 将标题添加到Talisman
talisman.content_security_policy = csp
talisman.strict_transport_security = hsts
第 3 步:运行 Flask 应用程序
现在已经差不多完成了,为了完成应用程序,我们可以运行 Flask 应用程序,然后在浏览器中对其执行一些测试。为此,我们可以使用浏览器提供的开发者工具来验证HTTP安全标头。在 Google Chrome 中,我们只需打开开发人员工具,然后选择“网络”选项卡即可做到这一点。之后,我们可以选择一个请求,然后立即查看响应标头以查看 HTTP 安全标头。
完整代码:
Python3
from flask import Flask
from flask_talisman import Talisman
app = Flask(__name__)
talisman = Talisman(app)
# 内容安全策略(CSP)标头
csp = {
'default-src': [
'\'self\'',
'https://code.jquery.com',
'https://cdn.jsdelivr.net'
]
}
# HTTP严格传输安全(HSTS)标头
hsts = {
'max-age': 31536000,
'includeSubDomains': True
}
# 强制HTTPS和其他标头
talisman.force_https = True
talisman.force_file_save = True
talisman.x_xss_protection = True
talisman.session_cookie_secure = True
talisman.session_cookie_samesite = 'Lax'
talisman.frame_options_allow_from = 'https://www.google.com'
# 将标题添加到Talisman
talisman.content_security_policy = csp
talisman.strict_transport_security = hsts
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run()