2012-01-16 19 views
11

Aquí está mi escenario: Estoy construyendo una página web para la banda de un amigo. Quieren transmitir versiones completas de sus canciones en el sitio, pero no permiten que los usuarios descarguen los archivos. Hay enlaces para comprar la música en iTunes y Amazon. Mi solución ideal es usar la etiqueta de audio html5.Cómo asegurar la música cuando se transmite a través de la etiqueta de audio HTML5

Mi problema: Transmitir música a través de la etiqueta de audio no es seguro, y es muy fácil capturar la URL en la fuente de la página y luego simplemente descargarla de su navegador web.

He hecho algunas investigaciones en línea y he leído algunas discusiones. Sí, sé que no hay forma de hacerlo 100% seguro. Pero, me gustaría tratar de implementar algunas medidas de seguridad para disuadir a la mayoría de las personas de robar la música.

Así que mi pregunta es, ¿qué medidas puedo tomar aquí para tratar de asegurar el audio? ¿Hay alguna manera de permitir que solo la página que transmite la música acceda a ella? ¿De esta forma los usuarios no pueden simplemente navegar a la URL del archivo de música y descargar? ¿O hay una forma de obtenerlo de un servicio web?

Cualquier ayuda es muy apreciada. ¡Gracias!

Respuesta

8

Hay un pequeño truco que pienso: permitir el acceso a la música a través de una URL única de una sola vez:

// 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 

No impedirá que los usuarios descarguen canción a través de CURL (por ejemplo), pero no podrán ver la página Y navegar por la fuente para descargar la canción nuevamente.

Además, debería ser posible descargar muestras separadas de su pista y reproducirlas continuamente con un reproductor personalizado. Estas son solo ideas, no estoy seguro de que sean lo suficientemente eficientes para lo que solicite.

+0

Esta idea es una buena teoría, pero no estoy muy seguro de cómo se implementaría en la práctica? Sí, podría configurar una base de datos y obtener/configurar un token, pero no entiendo cómo agarrar la canción usando esta url con un token como cadena de consulta usando HTML. – JRusty15

+0

En la base de datos, tendrá una tabla "tokens" con un "id" y un "nombre de archivo" correspondiente. Puede tener varios 'ids' para un solo' nombre de archivo'. En sever-side, su script encontrará UNIQUETOKEN, obtendrá el nombre de archivo correspondiente, eliminará la línea en la base de datos y dará salida a los datos de la canción. La forma de leer y generar un contenido de archivo depende del idioma del lado del servidor. En PHP, sería: 'echo file_get_contents ($ filename)'. –

+0

Bueno, el sitio web será alojado por un tercero y no tengo la capacidad de establecer ningún tipo de permisos de archivos. Entonces, ¿qué impediría que un usuario navegue a la URL (sin token) y siga accediendo al archivo? – JRusty15

0

lo hice con dos archivos .php:

El primero es el 'jugador'. Cuando se carga, crea una sesión var que el segundo recoge, o no.

El segundo es el 'streamer'. Si encuentra la sesión var, usa mensajes de "contenido parcial" para transmitir la canción al reproductor. Si falta la sesión var no hace nada.

No debería haber ninguna forma de vincularse directamente sin acceso al sistema de archivos.

Cuestiones relacionadas