Целостность SubResource в приложении Flask - PullRequest
0 голосов
/ 04 марта 2019

Есть ли в python пакет, связанный с flask, который бы автоматически генерировал sri-токен и обрабатывал их?

Я попытался найти документацию по Flask и не смог ее найти.

Пожалуйстадайте мне знать, как это сделать, если есть способ или я должен сделать это вручную.

Решение:

  1. Функция для генерации хеш-значения

    def generate_sri (inp_file): BUF_SIZE = 65536 hashed = 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)
    
  2. Добавить функцию в глобальные объекты jinja env

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

Вызов функции внутри шаблона

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...