Piszę rozszerzenie dla Chrome, ale także mogą być regularne rozwiązania JavaScript.

Moje rozszerzenia zwiększa / rozszerza API dostępne dla stron internetowych.

Na przykład strona internetowa może żądać dostępu do gniazd UDP z mojego rozszerzenia, a użytkownik zostanie poproszony o zgodę.

Gdy użytkownik zostanie wyświetlony monit, jeśli chcesz uzyskać dostęp do tej funkcji na stronie, muszę pamiętać, jakie witryny mają dostęp do tego, jakie funkcje.

Jaka jest najlepsza forma identyfikacji witryny, której można uzyskać w regularnym JavaScript lub za pomocą API Rozszerzenia Chrome?

Moje pomysły

  • Nazwa domeny może działać, ale na domenie, takiej jak appspot.com, gdy pojedynczą aplikację żąda uprawnień, wszystkie aplikacje w ramach tej domenie mają dostęp.

  • Problem z patrzącym w domenie jest to, że często potrzebujesz pozwolenia na całą domenę.

  • Rozwiązanie, które pomyślałem, miało największe znaczenie (dotyczy tylko https), aby spojrzeć na certyfikat domeny. Powinienem być w stanie porównać klucz publiczny lub coś, a następnie jest zgodny z certyfikatem. Jeśli znam poprawnie, możesz wybrać utworzenie certyfikatu dla całej domeny lub po prostu subdomena itp. Niestety nie wydaje się, aby uzyskać dostęp do informacji o certyfikacie w JavaScript, a API przedłużające Chrome nie wydaje się niczego dostarczać zarówno. To naprawdę wydawało się idealnym rozwiązaniem.

0
David Callanan 15 styczeń 2020, 02:25

1 odpowiedź

Najlepsza odpowiedź

Standardowa identyfikacja w całej sieci Web do uprawnień jest URL pochodzenia IE scheme://host:port (Port jest opcjonalny), który można wyodrębnić za pomocą ręcznego manipulacji ciągów lub jako {X1}}, chociaż ten jest wolniejszy, szczególnie dla ciągów superlong, takich jak URI danych.

Aby rozbroić problem z domenie Użyj Publicznej listy, istnieje wiele bibliotek (Link i Link).

1
wOxxOm 15 styczeń 2020, 06:03