JavaScript как однозначно идентифицировать сайт - PullRequest
0 голосов
/ 15 января 2020

Я пишу расширение для chrome, но могут быть и обычные JavaScript решения для моего вопроса.

Мои расширения улучшают / расширяют API, доступные для веб-сайтов.

Например, веб-сайт может запрашивать доступ к UDP-сокетам с моего внутреннего номера, и пользователю будет предложено разрешение.

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

Какова наилучшая форма идентификации веб-сайта, которую можно получить с помощью обычного javascript или с использованием расширений API chrome?

Мои идеи

  • Имя домена может работать, но в домене, таком как appspot.com, когда одно приложение запрашивает разрешение, все приложения в этом домене теперь имеют доступ.

  • Проблема с просмотром поддомена заключается в том, что вам часто понадобится разрешение для всего вашего домена.

  • Решение, которое, на мой взгляд, имело смысл ( относится только к HTTPS) было посмотреть на сертификат домена. Я должен быть в состоянии сравнить ключ publi c или что-то еще, и тогда это согласуется с сертификатом. Если я правильно знаю, вы можете создать сертификат для всего домена или только для поддоменов и т. Д. c. К сожалению, в JavaScript, похоже, нет никакого способа получить доступ к информации о сертификате, и API расширения chrome, похоже, тоже ничего не предоставляет. Это действительно казалось идеальным решением.

1 Ответ

1 голос
/ 15 января 2020

Стандартным идентификатором разрешений для всех веб-сайтов является источник URL , т. Е. scheme://host:port (порт необязательный), который можно извлечь либо с помощью ручных манипуляций со строками, либо как new URL(urlString).origin, хотя это один медленнее, особенно для сверхдлинных строк, таких как URI данных.

Чтобы устранить проблему с доменом, используйте Publi c Список суффиксов , есть много библиотек ( ссылка и ссылка ).

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