Политика функций: геолокация
Политика функций: геолокация
Заголовок HTTP Feature-Policy директива geolocation управляет тем, разрешено ли текущему документу использовать интерфейс Geolocation. Когда эта политика включена, вызовы getCurrentPosition() и watchPosition() приведут к вызову обратных функций с кодом GeolocationPositionError PERMISSION_DENIED.
По умолчанию API геолокации может использоваться в верхнеуровневых документах и их фреймах с тем же происхождением. Данная директива позволяет или запрещает фреймам с другим происхождением получать доступ к геолокации. Это включает фреймы с тем же происхождением.
Синтаксис
Feature-Policy: geolocation <allowlist>;
- <список разрешенных>
-
Список происхождений, для которых разрешена функция. См.
Feature-Policy.
Политика по умолчанию
Список разрешенных происхождений по умолчанию для geolocation — 'self'.
Примеры
Пример
Компания SecureCorp Inc. хочет отключить API геолокации во всех контекстах просмотра, кроме своего собственного происхождения и происхождений https://example.com. Она может сделать это, передав следующий заголовок HTTP для определения политики функций:
Feature-Policy: geolocation 'self' https://example.com
С элементом <iframe>
Компания FastCorp Inc. хочет отключить geolocation для всех фреймов-потомков с другим происхождением, кроме определенного <iframe>. Она может сделать это, передав следующий заголовок HTTP для определения политики функций:
Feature-Policy: geolocation 'self'
Затем добавьте атрибут разрешения к элементу <iframe>:
<iframe src="https://other.com/map" allow="geolocation"></iframe>
Интересно, что атрибуты allow могут избирательно включать функции в определенных фреймах, а не в других, даже если эти фреймы содержат документы из одного происхождения.
Спецификации
| Спецификация |
|---|
| API геолокации # dfn-geolocation |
Совместимость с браузерами
| Десктопные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
geolocation |
60 |
79 |
74
Поддерживается только через атрибут
allow в элементах <iframe>. |
Нет |
47 |
Нет |
60 |
60 |
79
Поддерживается только через атрибут
allow в элементах <iframe>. |
44 |
Нет |
8.0 |
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policy/geolocation