2012-01-16 6 views
11

Oto mój scenariusz: Buduję stronę internetową dla zespołu przyjaciela. Chcą przesyłać strumieniowo pełne wersje swoich piosenek na stronie, ale nie pozwalają użytkownikom pobierać plików. Istnieją linki do zakupu muzyki w iTunes i Amazon. Moim idealnym rozwiązaniem jest użycie znacznika audio html5.Jak zabezpieczyć muzykę podczas przesyłania strumieniowego za pomocą znacznika dźwiękowego HTML5

Mój problem: Przesyłanie strumieniowe muzyki za pośrednictwem znacznika audio nie jest bezpieczne i bardzo łatwo jest przechwycić adres URL ze źródła strony, a następnie po prostu pobrać z przeglądarki internetowej.

Zrobiłem kilka badań online i przeczytałem kilka dyskusji. Tak, wiem, że nie ma sposobu, aby uczynić go w 100% bezpiecznym. Ale chciałbym spróbować wdrożyć pewne środki bezpieczeństwa, aby powstrzymać większość ludzi przed kradzieżą muzyki.

Moje pytanie brzmi: jakie środki mogę zastosować, aby zabezpieczyć dźwięk? Czy istnieje sposób, aby zezwolić tylko stronie, która strumieniuje dostęp do muzyki? W ten sposób użytkownicy nie mogą po prostu przejść do adresu URL pliku muzycznego i pobrać go? A może jest jakiś sposób na uzyskanie go z usługi sieciowej?

Każda pomoc jest doceniana. Dzięki!

Odpowiedz

8

Jest mały trick myślę o: umożliwiają dostęp do muzyki za pomocą jednorazowej unikalnym adresem URL:

// Page generation 
// Generate unique token and put it into database 
<audio controls="controls"> 
    <source src="song.ogg?token=UNIQUETOKEN" type="audio/ogg" /> 
</audio> 

// On access 
- Check for corresponding UNIQUETOKEN in database 
- Remove token from database 
- Send audio data 

Nie będzie uniemożliwić użytkownikom pobieranie piosenkę przez CURL (na przykład), ale nie będą mogli przeglądać strony I nawigować po źródle, aby ponownie pobrać utwór.

Należy również pobrać oddzielne próbki z utworu i odtwarzać je w sposób ciągły za pomocą niestandardowego odtwarzacza. To tylko pomysły, nie jestem pewien, czy byłyby wystarczająco wydajne na to, o co prosisz.

+0

Pomysł ten jest dobrą teorią, ale nie jestem do końca pewny, w jaki sposób zostanie to wdrożone w praktyce? Tak, mógłbym skonfigurować bazę danych i uzyskać/ustawić token, ale nie rozumiem, jak pobrać piosenkę za pomocą tego adresu z tokena jako ciągu zapytania za pomocą HTML. – JRusty15

+0

W bazie danych, będziesz miał "żetony" tabeli z "id" i odpowiadającą "nazwą pliku". Możesz mieć kilka 'ids' dla pojedynczej' nazwy pliku'. Po stronie serwera skrypt znajdzie UNIQUETOKEN, uzyska odpowiednią nazwę pliku, usunie wiersz w bazie danych i wypisze dane utworu. Sposób odczytywania i wysyłania zawartości pliku zależy od języka po stronie serwera. W PHP będzie to: 'echo file_get_contents ($ filename)'. –

+0

Cóż, strona internetowa będzie obsługiwana przez firmę zewnętrzną i nie mam możliwości ustawiania jakichkolwiek uprawnień do plików. Co powstrzymałoby użytkownika przed nawigacją do URL-a (bez tokena) i nadal uzyskiwał dostęp do pliku? – JRusty15

0

Zrobiłem to z dwóch plików .php:

Pierwszym z nich jest „gracz”. Po załadowaniu tworzy var sesji, który drugi podnosi - lub nie.

Drugi to "streamer". Jeśli znajdzie zmienną sesji, używa wiadomości "częściowej zawartości", aby przesłać utwór do odtwarzacza. Jeśli brakuje var sesji, nie robi nic.

Nie należy w żaden sposób łączyć się z nim bezpośrednio, bez dostępu do systemu plików.

Powiązane problemy