Поддерживает ли стандарт политики безопасности контента пути с подстановочными знаками? Если нет, то почему?

Из стандартной спецификации и примеров CSP видно, что он не поддерживает подстановочные знаки в части пути. заданного URL. Это кажется упущением, поскольку многие CDN и поставщики хостинга статических файлов совместно используют имена корневых доменов между своими пользователями и различают доступ только к путям URL, а не ко всему домену.

Например, при использовании S3 или Google Cloud Storage в качестве CDN вы можете захотеть, чтобы CSP разрешал загрузку скриптов/активов только из вашей корзины с подстановочным URL-адресом, например "https://storage.googleapis.com/my-apps-bucket/*", но запретить их для остальных https://storage.googleapis.com, поскольку для злоумышленника было бы довольно просто создать собственную учетную запись и предоставлять контент из этого корня. домен.

Это кажется довольно распространенным вариантом использования, я неправильно понимаю спецификацию? Если нет, каков синтаксис для использования путей с подстановочными знаками, поскольку использование заголовка, такого как Content-Security-Policy: script-src 'self' https://example.com/*, похоже, не работает.


person depthfirstdesigner    schedule 12.11.2015    source источник


Ответы (1)


Часть спецификации, посвященная сопоставлению исходных выражений (http://www.w3.org/TR/CSP/#match-source-expression) подробно описывает алгоритм сопоставления URL. Он поддерживает то, что вы просите, но вы не используете подстановочный знак.

Спецификация обсуждает необязательную «часть пути» разрешенных источников и говорит, что если разрешенный URL-адрес заканчивается косой чертой «/», это совпадение префикса, а не точное совпадение.

Итак, в вашем примере, если вы позволите

https://storage.googleapis.com/my-apps-bucket/

с косой чертой, но без звездочки на конце, он будет соответствовать файлам ниже этого URL, например

https://storage.googleapis.com/my-apps-bucket/file1.js
person Chris Denning    schedule 06.12.2015
comment
Теперь это находится в разделе Сопоставление URL и, в частности, совпадение частичного пути в рабочем проекте. - person GreenReaper; 05.12.2020
comment
Будет ли https://storage.googleapis.com/my-apps-bucket/ также соответствовать https://storage.googleapis.com/my-apps-bucket ? - person jhselvik; 04.03.2021