Chrome публично намерен отказаться от таких мощных функций, как геолокация в незащищенных источниках, и мы надеемся, что другие последуют этому примеру.
Начиная с Chrome 50, Chrome больше не поддерживает получение местоположения пользователя с помощью API геолокации HTML5 со страниц, доставляемых через незащищенные соединения. Это означает, что страница, выполняющая вызов API геолокации, должна обслуживаться из безопасного контекста, такого как HTTPS .
Это важная проблема, поскольку она напрямую повлияет на любой сайт, который требует использования API геолокации и не обслуживается через https, но мы считаем, что это изменение пойдет на пользу всем пользователям в сети. Этот пост должен помочь вам понять причину и то, как действовать.
Когда это изменится?
Это изменение вступает в силу начиная с Chrome 50 (20:00 по тихоокеанскому стандартному времени, 20 апреля 2016 г.).
Консоль инструментов разработчика Chrome выдает предупреждения начиная с версии 44 (выпущенной 21 июля 2015 г.).
Был сделан ряд публичных заявлений, описывающих обоснование (и обсуждение) того, почему мы вносим это изменение:
- Намерение отказаться от набора мощных функций HTTP (февраль 2015 г.).
- Намерение прекратить поддержку API геолокации через HTTP (ноябрь 2015 г.)
- Саммит разработчиков Chrome (ноябрь 2016 г.)
- Блог о выпуске бета-канала Chrome (17 марта 2016 г.)
- Веб-сайт статуса Chrome
Об этом сообщил ряд других источников: Mobiforge (26 января 2016 г.), Wired (17 марта 2016 г.), VentureBeat (13 апреля 2016 г.).
Почему мы вносим это изменение?
Местоположение — конфиденциальные данные! Требование HTTPS необходимо для защиты конфиденциальности данных о местоположении ваших пользователей. Если местоположение пользователя доступно из незащищенного контекста, злоумышленники в сети смогут узнать, где находится этот пользователь. Это серьезно ставит под угрозу конфиденциальность пользователей.
На кого это влияет?
Это затрагивает любую страницу, которая в настоящее время использует API геолокации со страниц, обслуживаемых через HTTP (незащищенный). Это также влияет на iframe HTTPS, которые используют API геолокации, если они встроены в страницы HTTP. (Вы не сможете выполнять полифил, используя общий фрейм, доставленный по протоколу HTTPS.)
Нужен ли всему моему веб-приложению HTTPS?
Для использования геолокации не обязательно, чтобы все приложение обслуживалось через HTTPS. Только страницы, использующие геолокацию, должны обслуживаться в безопасном контексте. Безопасный контекст в настоящее время — это все, что размещено на верхнем уровне по протоколу HTTPS или локальному хосту. Например, iframe, который указывает на безопасный источник, но размещен в незащищенном источнике ( http://paul.kinlan.me/ ) , не сможет вызывать API геолокации.
Мы настоятельно рекомендуем вам перейти на HTTPS, поскольку мощные новые и существующие функции браузера требуют безопасного происхождения .
Влияет ли это на местное развитие?
Это не должно быть так, поскольку в спецификации localhost объявлен как «потенциально безопасный», и в нашем случае запросы геолокации, обслуживаемые на верхнем уровне через localhost, все равно будут работать.
Могу ли я обнаружить во время выполнения, если геолокация была заблокирована из-за отсутствия безопасного контекста?
Да. Спецификация геолокации определяет объект PositionError , который передается в обратный вызов при ошибке API-интерфейсов геолокации. Объект определяет code
и свойства message
.
Ошибки, возникающие из-за этой проблемы с безопасным контекстом, возвращают code
1, который является «ошибкой отказа в доступе». Эта ошибка может возникнуть, когда пользователь запретил доступ или система запретила доступ к местоположениям пользователя. Это означает, что вам придется проверить сообщение, чтобы узнать точную причину.
Это может быть довольно нестабильно, поскольку может измениться в будущем, но сильным сигналом о том, что это проблема с незащищенным контентом, является поиск строки «Разрешены только безопасные источники».
navigator.geolocation.getCurrentPosition(success => {
/* Do some magic. */
}, failure => {
if (failure.message.startsWith("Only secure origins are allowed")) {
// Secure Origin issue.
}
});
Помните, что вы не можете просто проверить происхождение страницы, поскольку ваша страница может находиться на https, но внутри iframe, размещенного в незащищенном контексте.
Мне действительно нужно использовать геолокацию; Что я должен делать?
Если вы хотите использовать API геолокации HTML5 или если ваш сайт уже использует API геолокации, перенесите страницы, выполняющие вызовы API геолокации, на HTTPS , гарантируя, что они используются в безопасном контексте.
Существует ряд резервных вариантов получения местоположения пользователя, на которые не влияет это изменение, например API геолокации Google Maps , GeoIP (например, существуют другие решения на основе географического положения) и введенный пользователем почтовый индекс. Однако мы настоятельно рекомендуем , чтобы лучший способ обеспечить постоянный доступ к геолокации — перейти на HTTPS.
,Chrome публично намерен отказаться от таких мощных функций, как геолокация в незащищенных источниках, и мы надеемся, что другие последуют этому примеру.
Начиная с Chrome 50, Chrome больше не поддерживает получение местоположения пользователя с помощью API геолокации HTML5 со страниц, доставляемых через незащищенные соединения. Это означает, что страница, выполняющая вызов API геолокации, должна обслуживаться из безопасного контекста, такого как HTTPS .
Это важная проблема, поскольку она напрямую повлияет на любой сайт, который требует использования API геолокации и не обслуживается через https, но мы считаем, что это изменение пойдет на пользу всем пользователям в сети. Этот пост должен помочь вам понять причину и то, как действовать.
Когда это изменится?
Это изменение вступает в силу начиная с Chrome 50 (20:00 по тихоокеанскому стандартному времени, 20 апреля 2016 г.).
Консоль инструментов разработчика Chrome выдает предупреждения начиная с версии 44 (выпущенной 21 июля 2015 г.).
Был сделан ряд публичных заявлений, описывающих обоснование (и обсуждение) того, почему мы вносим это изменение:
- Намерение отказаться от набора мощных функций HTTP (февраль 2015 г.).
- Намерение прекратить поддержку API геолокации через HTTP (ноябрь 2015 г.)
- Саммит разработчиков Chrome (ноябрь 2016 г.)
- Блог о выпуске бета-канала Chrome (17 марта 2016 г.)
- Веб-сайт статуса Chrome
Об этом сообщил ряд других источников: Mobiforge (26 января 2016 г.), Wired (17 марта 2016 г.), VentureBeat (13 апреля 2016 г.).
Почему мы вносим это изменение?
Местоположение — конфиденциальные данные! Требование HTTPS необходимо для защиты конфиденциальности данных о местоположении ваших пользователей. Если местоположение пользователя доступно из незащищенного контекста, злоумышленники в сети смогут узнать, где находится этот пользователь. Это серьезно ставит под угрозу конфиденциальность пользователей.
На кого это влияет?
Это затрагивает любую страницу, которая в настоящее время использует API геолокации со страниц, обслуживаемых через HTTP (незащищенный). Это также влияет на iframe HTTPS, которые используют API геолокации, если они встроены в страницы HTTP. (Вы не сможете выполнять полифил, используя общий фрейм, доставленный по протоколу HTTPS.)
Нужен ли всему моему веб-приложению HTTPS?
Для использования геолокации не обязательно, чтобы все приложение обслуживалось через HTTPS. Только страницы, использующие геолокацию, должны обслуживаться в безопасном контексте. Безопасный контекст в настоящее время — это все, что размещено на верхнем уровне по протоколу HTTPS или локальному хосту. Например, iframe, который указывает на безопасный источник, но размещен в незащищенном источнике ( http://paul.kinlan.me/ ) , не сможет вызывать API геолокации.
Мы настоятельно рекомендуем вам перейти на HTTPS, поскольку мощные новые и существующие функции браузера требуют безопасного происхождения .
Влияет ли это на местное развитие?
Это не должно быть так, поскольку в спецификации localhost объявлен как «потенциально безопасный», и в нашем случае запросы геолокации, обслуживаемые на верхнем уровне через localhost, все равно будут работать.
Могу ли я обнаружить во время выполнения, если геолокация была заблокирована из-за отсутствия безопасного контекста?
Да. Спецификация геолокации определяет объект PositionError , который передается в обратный вызов при ошибке API-интерфейсов геолокации. Объект определяет code
и свойства message
.
Ошибки, возникающие из-за этой проблемы с безопасным контекстом, возвращают code
1, который является «ошибкой отказа в доступе». Эта ошибка может возникнуть, когда пользователь запретил доступ или система запретила доступ к местоположениям пользователя. Это означает, что вам придется проверить сообщение, чтобы узнать точную причину.
Это может быть довольно нестабильно, поскольку может измениться в будущем, но сильным сигналом о том, что это проблема с незащищенным контентом, является поиск строки «Разрешены только безопасные источники».
navigator.geolocation.getCurrentPosition(success => {
/* Do some magic. */
}, failure => {
if (failure.message.startsWith("Only secure origins are allowed")) {
// Secure Origin issue.
}
});
Помните, что вы не можете просто проверить происхождение страницы, поскольку ваша страница может находиться на https, но внутри iframe, размещенного в незащищенном контексте.
Мне действительно нужно использовать геолокацию; Что я должен делать?
Если вы хотите использовать API геолокации HTML5 или если ваш сайт уже использует API геолокации, перенесите страницы, выполняющие вызовы API геолокации, на HTTPS , гарантируя, что они используются в безопасном контексте.
Существует ряд резервных вариантов получения местоположения пользователя, на которые не влияет это изменение, например API геолокации Google Maps , GeoIP (например, существуют другие решения на основе географического положения) и введенный пользователем почтовый индекс. Однако мы настоятельно рекомендуем , чтобы лучший способ обеспечить постоянный доступ к геолокации — перейти на HTTPS.
,Chrome публично намерен отказаться от таких мощных функций, как геолокация в незащищенных источниках, и мы надеемся, что другие последуют этому примеру.
Начиная с Chrome 50, Chrome больше не поддерживает получение местоположения пользователя с помощью API геолокации HTML5 со страниц, доставляемых через незащищенные соединения. Это означает, что страница, выполняющая вызов API геолокации, должна обслуживаться из безопасного контекста, такого как HTTPS .
Это важная проблема, поскольку она напрямую повлияет на любой сайт, который требует использования API геолокации и не обслуживается через https, но мы считаем, что это изменение пойдет на пользу всем пользователям в сети. Этот пост должен помочь вам понять причину и то, как действовать.
Когда это изменится?
Это изменение вступает в силу начиная с Chrome 50 (20:00 по тихоокеанскому времени, 20 апреля 2016 г.).
Консоль инструментов разработчика Chrome выдает предупреждения начиная с версии 44 (выпущенной 21 июля 2015 г.).
Был сделан ряд публичных заявлений, описывающих обоснование (и обсуждение) того, почему мы вносим это изменение:
- Намерение отказаться от набора мощных функций HTTP (февраль 2015 г.).
- Намерение прекратить поддержку API геолокации через HTTP (ноябрь 2015 г.)
- Саммит разработчиков Chrome (ноябрь 2016 г.)
- Блог о выпуске бета-канала Chrome (17 марта 2016 г.)
- Веб-сайт статуса Chrome
Об этом сообщил ряд других источников: Mobiforge (26 января 2016 г.), Wired (17 марта 2016 г.), VentureBeat (13 апреля 2016 г.).
Почему мы вносим это изменение?
Местоположение – конфиденциальные данные! Требование HTTPS необходимо для защиты конфиденциальности данных о местоположении ваших пользователей. Если местоположение пользователя доступно из незащищенного контекста, злоумышленники в сети смогут узнать, где находится этот пользователь. Это серьезно ставит под угрозу конфиденциальность пользователей.
На кого это влияет?
Это затрагивает любую страницу, которая в настоящее время использует API геолокации со страниц, обслуживаемых через HTTP (незащищенный). Это также влияет на iframe HTTPS, которые используют API геолокации, если они встроены в страницы HTTP. (Вы не сможете выполнять полифил, используя общий фрейм, доставленный по протоколу HTTPS.)
Нужен ли всему моему веб-приложению HTTPS?
Для использования геолокации не обязательно, чтобы все приложение обслуживалось через HTTPS. Только страницы, использующие геолокацию, должны обслуживаться в безопасном контексте. Безопасный контекст в настоящее время — это все, что размещено на верхнем уровне по протоколу HTTPS или локальному хосту. Например, iframe, который указывает на безопасный источник, но размещен в незащищенном источнике ( http://paul.kinlan.me/ ) , не сможет вызывать API геолокации.
Мы настоятельно рекомендуем вам перейти на HTTPS, поскольку мощные новые и существующие функции браузера требуют безопасного происхождения .
Влияет ли это на местное развитие?
Это не должно быть так, поскольку в спецификации localhost объявлен как «потенциально безопасный», и в нашем случае запросы геолокации, обслуживаемые на верхнем уровне через localhost, все равно будут работать.
Могу ли я обнаружить во время выполнения, если геолокация была заблокирована из-за отсутствия безопасного контекста?
Да. Спецификация геолокации определяет объект PositionError , который передается в обратный вызов при ошибке API-интерфейсов геолокации. Объект определяет code
и свойства message
.
Ошибки, возникающие из-за этой проблемы с безопасным контекстом, возвращают code
1, который является «ошибкой отказа в доступе». Эта ошибка может возникнуть, когда пользователь запретил доступ или система запретила доступ к местоположениям пользователя. Это означает, что вам придется проверить сообщение, чтобы узнать точную причину.
Это может быть довольно нестабильно, поскольку может измениться в будущем, но сильным сигналом о том, что это проблема с незащищенным контентом, является поиск строки «Разрешены только безопасные источники».
navigator.geolocation.getCurrentPosition(success => {
/* Do some magic. */
}, failure => {
if (failure.message.startsWith("Only secure origins are allowed")) {
// Secure Origin issue.
}
});
Помните, что вы не можете просто проверить происхождение страницы, поскольку ваша страница может находиться на https, но внутри iframe, размещенного в незащищенном контексте.
Мне действительно нужно использовать геолокацию; Что я должен делать?
Если вы хотите использовать API геолокации HTML5 или если ваш сайт уже использует API геолокации, перенесите страницы, выполняющие вызовы API геолокации, на HTTPS , гарантируя, что они используются в безопасном контексте.
Существует ряд резервных вариантов получения местоположения пользователя, на которые не влияет это изменение, например API геолокации Google Maps , GeoIP (например, существуют другие решения на основе географического положения) и введенный пользователем почтовый индекс. Однако мы настоятельно рекомендуем , чтобы лучший способ обеспечить постоянный доступ к геолокации — перейти на HTTPS.