Flask应用程序中的SubResource完整性

时间:2019-03-04 10:50:03

标签: python flask

python中是否有与flask相关的软件包,它们会自动生成sri令牌并进行处理?

我尝试搜索Flask文档,但找不到它。

如果有办法或者应该手动进行操作,请告诉我该怎么做。

解决方案:

  1. 用于生成哈希值的功能

    def generate_sri(inp_file):     BUF_SIZE = 65536     散列= hashlib.sha256()

    with open(inp_file, 'rb') as f:
        while True:
            data = f.read(BUF_SIZE)
            if not data:
                break
            hashed.update(data)
    hashed = hashed.digest()
    hash_base64 = base64.b64encode(hashed).decode('utf-8')
    return 'sha256-{}'.format(hash_base64)
    
    1. 将函数添加到jinja env全局变量

app.jinja_env.globals['sri'] = generate_sri

  1. 调用模板中的功能

<script src="{{ url_for('static', filename='file.js') }}" integrity="{{ sri(url_for('static', filename='file.js')) }}" crossorigin="anonymous"></script>

0 个答案:

没有答案
相关问题