Jak otworzyć stronę z pliku z HTTPS (wtf)

0

Potrzebowałem zrobić prostą stronkę która zachowuje się jak playlista, ale napotkałem dziwny problem, a mianowicie niektóre filmiki wyrzucają "Film niedostępny". Rozwiązanie jakie znalazłem to odpalenie tego z https i faktycznie to rozwiązanie działa, jednak nie widzę sensu w odpalaniu czegoś tak prostego jako web app lub za pomocą jakiegoś serwera HTTP.

Więc, jak miałbym nie wiem... zfakeować origin aby udawał https dla stronki odpalanej po prostu z pliku index.html?

chociaż może to potencjalnie byłoby jakieś security issue? xD

Kod po prostu odtwarza w pętli filmy na YT zdefiniowane w videos.

<div id="player"></div>

<script src="https://www.youtube.com/player_api"></script>

<script>
var videos = ['dQw4w9WgXcQ']
var index = 0;
var player;

function onYouTubePlayerAPIReady() {
	player = new YT.Player('player', {
		height: '390',
		width: '640',
		videoId: videos[index],
		events: {
			'onReady': onPlayerReady,
			'onStateChange': onPlayerStateChange
		}
	});
}

function onPlayerReady(event) {
	event.target.playVideo();
}

function onPlayerStateChange(event) {        
	if(event.data === 0) {            
		MoveNext();
	}
}

function MoveNext() {
	if (index == videos.length - 1 || index < 0)
		index = 0;
	else
		index++;
	
	player.loadVideoById(videos[index]);
}
</script>

Zmiana: <script src="https://www.youtube.com/player_api"></script> na http nic nie pomogła.

5

Ciesz się, że nie zablokowali kompletnie ruchu bez ssl, bo takie plany miało i nadal ma google. Z tego powodu powstało let`s encrypt by nie płacić za ssl dla prostych stron ale by spełnić wymogi przeglądarek. Niestety musisz się z tym pogodzić.

0

@mr_jaro

no ale nawet localhost?

2

Nawet. Na ten przykład wszelkie podpinanie mikrofonu, kamery, geolokalizacji itp nie podepniesz bez https nawet lokalnie :p Kiedyś jeszcze ff miał localhosta odblokowanego ale potem i oni zablokowali.

4

Natomiast na localhosta możesz sobie wystawić self-signed certificate.

0

Jeśli chcesz tylko u siebie otworzyć tę stronę to po prostu musisz wyłączyć zabezpieczenia żeby pozwolić na mixed content

https://docs.adobe.com/content/help/en/target/using/experiences/vec/troubleshoot-composer/mixed-content.html

1
WeiXiao napisał(a):

Potrzebowałem zrobić prostą stronkę która zachowuje się jak playlista, ale napotkałem dziwny problem, a mianowicie niektóre filmiki wyrzucają "Film niedostępny". Rozwiązanie jakie znalazłem to odpalenie tego z https i faktycznie to rozwiązanie działa, jednak nie widzę sensu w odpalaniu czegoś tak prostego jako web app lub za pomocą jakiegoś serwera HTTP.

Więc, jak miałbym nie wiem... zfakeować origin aby udawał https dla stronki odpalanej po prostu z pliku index.html?

chociaż może to potencjalnie byłoby jakieś security issue? xD

Jak widać z postu OPowi chodzi nie o różnicę http:// vs https:// tylko różnicę file:// vs (http:// albo https://). Otóż file:// ma dzisiaj poblokowane sporo rzeczy. Nie jest też traktowane jako localhost. Tu jest trochę informacji: https://textslashplain.com/2019/10/09/navigating-to-file-urls/ Jak pogrzebiesz w necie to pewnie znajdziesz więcej.

0

screenshot-20201013180347.png

screenshot-20201013180458.png

screenshot-20201013182139.png

0

Jak sobie otworzę index.html w Chrome to w narzędziach programisty widzę kilka pozycji w zakładce Network, gdy zaznaczę opcję: Has blocked cookies. Widocznie Chrome blokuje jakieś ciasteczka konieczne do pracy YouTube'a. Znalazłem na necie https://bugs.chromium.org/p/chromium/issues/detail?id=535 "Issue 535: Support cookies on file://" ale to chyba jest martwe.

Poza tym odpowiedzi w tym temacie to niezłe WTF. Jak zainstalować SSLa do protokołu file://? :P Co z tego wyjdzie? files://?

0

Może użycie innego playera (nie YT) rozwiąże problem wyświetlenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1