6.1. Безопасный контекст 6.2. Политика безопасности контента 6.3. Относительность происхождения 6.4. Ресурсы для разных источников и CORS 6.5. Ограничение пути 6.6. Запрос сценария работника службы 6.7. Обеспокоенность исполнителей 6.8. Конфиденциальность 6.1. Secure Context 6.2. Content Security Policy 6.3. Origin Relativity 6.4. Cross-Origin Resources and CORS 6.5. Path restriction […]
Архивы по дням: 17.11.2021
Работники службы вводят новые функции постоянного хранилища, включая область действия для карты регистрации (для регистрации работников службы и их работников службы), список ответов на запросы и имя для карты кеширования (для кешей) и карту ресурсов скрипта (для ресурсов скрипта). Чтобы защитить пользователей от любой потенциальной несанкционированной угрозы отслеживания, эти постоянные […]
Этот раздел не является нормативным. Разработчикам рекомендуется отметить: Плагины не должны загружаться через работников службы. Поскольку надстройки могут получать безопасность от своих собственных URL-адресов, работник службы внедрения не может с этим справиться. По этой причине алгоритм Handle Fetch немедленно отправляет запросы <embed> и <object> в сеть без отправки события fetch. […]
Этот раздел не является нормативным. Для дополнительной защиты от злонамеренной регистрации работника службы на сайте эта спецификация требует, чтобы: Заголовок Service-Worker присутствует в запросах сценария работника службы, и Скрипты работника службы обслуживаются с MIME-типом JavaScript. Информационные ссылки Стандарт Service Workers Nightly — https://w3c.github.io/ServiceWorker/#script-request
Этот раздел не является нормативным. В дополнение к ограничению происхождения, работники службы ограничены путём сценария работника службы. Например, скрипт работника службы на https://www.example.com/~bob/sw.js может быть зарегистрирован для URL-адреса области видимости https://www.example.com/~bob/, но не для области https://www.example.com/ или https://www.example.com/~alice/. Это обеспечивает некоторую защиту сайтов, на которых размещается многопользовательский контент в отдельных […]
Этот раздел не является нормативным. Приложения, как правило, кэшируют элементы, поступающие из CDN или другого источника. Многие из них можно запросить напрямую, используя элементы <script>, <img>, <video> и <link>. Было бы чрезвычайно ограничено, если бы такого рода совместная работа во время выполнения прервалась в автономном режиме. Точно так же […]
6.3.1. Ограничение происхождения Этот раздел не является нормативным. Работник службы выполняется в источнике регистрирующего клиента работника службы. Одна из сложных проблем, с которыми могут столкнуться основные приложения, заключается в том, могут ли они размещаться в сети CDN. По определению, это серверы в других местах, часто из других источников. Следовательно, работники […]
Каждый раз, когда пользовательский агент вызывает алгоритм «Запуска Работника Службы» (Run Service Worker) с помощью работника службы serviceWorker: Если ресурс сценария serviceWorker был доставлен с HTTP-заголовком Content-Security-Policy, содержащим значение policy, пользовательский агент должен применить политику policy для serviceWorker. Если ресурс сценария serviceWorker был доставлен с HTTP-заголовком Content-Security-Policy-Report-Only, содержащим значение […]
Работники службы должны работать в безопасном контексте. Клиенты работника службы также должны быть безопасными контекстами для регистрации регистрации работника службы, для получения доступа к регистрации работника службы и работника службы, для обмена сообщениями с работником службы и для манипулирования работником службы. Примечание Это фактически означает, что работники службы и […]
[SecureContext, Exposed=(Window,Worker)] interface CacheStorage { [NewObject] Promise<(Response или undefined)> match(RequestInfo request, optional MultiCacheQueryOptions options = {}); [NewObject] Promise<boolean> has(DOMString cacheName); [NewObject] Promise<Cache> open(DOMString cacheName); [NewObject] Promise<boolean> delete(DOMString cacheName); [NewObject] Promise<sequence<DOMString>> keys(); }; dictionary MultiCacheQueryOptions : CacheQueryOptions { DOMString cacheName; }; Примечание Интерфейс CacheStorage в значительной степени соответствует объектам […]
[SecureContext, Exposed=(Window,Worker)] interface Cache { [NewObject] Promise<(Response или undefined)> match(RequestInfo request, optional CacheQueryOptions options = {}); [NewObject] Promise<FrozenArray<Response>> matchAll(optional RequestInfo request, optional CacheQueryOptions options = {}); [NewObject] Promise<undefined> add(RequestInfo request); [NewObject] Promise<undefined> addAll(sequence<RequestInfo> requests); [NewObject] Promise<undefined> put(RequestInfo request, Response response); [NewObject] Promise<boolean> delete(RequestInfo request, optional CacheQueryOptions options = {}); […]