html - usar - ¿Cómo evitar la descarga de imágenes y archivos de video desde mi sitio web?
usar atributo alt en html (24)
¿Cómo evitar la descarga de imágenes y archivos de video desde mi sitio web? ¿Es posible? Cuál sería la mejor forma de hacer esto?
Así es como lo hago en caso de que alguien en el futuro se esté preguntando.
Puse esto en el archivo .htaccess en el servidor raíz:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www/.)?domain.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www/.)?domain.com.*$ [NC]
RewriteRule /.(mp4|avi)$ - [F]
Esto les impide, por ejemplo, ir a domain.com/videos/myVid.mp4 y luego guardarlo desde allí.
Como el navegador necesita transferir el contenido para mostrarlo (texto, imágenes, videos), los datos ya están en la computadora del cliente cuando se muestra el sitio web. Sin embargo, como las respuestas anteriores brindan pocos consejos sobre cómo dificultar que los no experimentados usen el contenido, estas son algunas instrucciones:
- General
- Superponga el contenido respectivo con una
<DIV>
transparente o una imagen transparente (como se describe en algunas respuestas a esta pregunta) - Abra el sitio web en un conjunto de marcos, por lo que es posible que el guardado pierda el contenido del marco.
- Abra el sitio web a través de
window.open()
para ocultar la barra de menú. - Deshabilite los clics con el botón derecho a través de JavaScript (no se recomienda debido a todos los efectos secundarios sobre la usabilidad)
- Cargue el código HTML de la página desde otro archivo (que puede buscar un referenciador específico o que puede ser ROT13) a través de JavaScript, por lo que es más difícil acceder al código fuente.
- Indique al navegador que se
display:none
todo el contenidodisplay:none
para la impresora (algo como@media print { body, div, p { display: none } }
) - Utilice JavaScript para ocultar el contenido antes de que un cliente realice una captura de pantalla (consulte Detener usuario al usar "Imprimir copia" )
- Intenta deshabilitar o sobrescribir el portapapeles (mira esta publicación )
- Superponga el contenido respectivo con una
- Imágenes
- No use la etiqueta
<img>
para imágenes, pero configure la imagen como fondo para un<DIV>
- Envuelva las imágenes en SVG o películas Flash para que sea muy difícil acceder a ellas en un formato utilizable.
- Inhabilite el almacenamiento en caché de las imágenes (a través de la etiqueta
<meta>
o configurando el encabezado apropiado en la entrega del servidor), para que no se almacenen en la memoria caché del navegador (accesible de forma inmediata en la computadora del cliente). - Corta una imagen en partes, por lo que requiere un trabajo adicional para reconstruir toda la imagen
- Agregue eventos de
onmousedown
a imágenes, por ejemplo, muestre una alerta de derechos de autor. - Entregar la imagen a través del script del servidor (por ejemplo, PHP) y verificar el referer.
- No use la etiqueta
- Videos
- Transmita videos para evitar la descarga simple a través de la URL.
- Ajustar videos en una película Flash.
- Use algún formato desagradable que admita DRM.
- Textos
- Haga que el texto no se pueda seleccionar (consulte Cómo hacer que el texto HTML no se pueda seleccionar )
- Además de superponer, ajuste el texto en JavaScript (por ejemplo, después de ROT13 o cargado dinámicamente desde un segundo archivo), de modo que el texto no esté directamente disponible en el código fuente.
- Convierte textos a imágenes (esto puede disminuir la calidad de la pantalla), SVG o Flash
Una vez más, repito que nada de esto impedirá que un usuario experimentado agarre el contenido (por ejemplo, creando una pantalla y, opcionalmente, ejecutando OCR). Algunas veces es tan fácil como usar las herramientas de desarrollo del navegador o usar el sitio web sin JavaScript. Sin embargo, les dará a los usuarios inexpertos un momento difícil, por lo que pueden buscar algo más fácil de atrapar.
También tenga en cuenta que las técnicas anteriores afectarán a los motores de búsqueda al leer el contenido de la página (si está interesado en bloquearlos, comience con un robots.txt
).
¡Gracias por cualquier otra idea para complementar la lista anterior!
Como muchos han dicho, no se puede evitar que alguien descargue contenido. Usted simplemente no puede.
Pero puedes hacerlo más difícil.
Puede superponer imágenes con un div
transparente, lo que evitará que las personas hagan clic derecho sobre ellas (o, establecer el fondo de un div
en la imagen tendrá el mismo efecto).
Si le preocupan los enlaces cruzados (es decir, otras personas que enlazan sus imágenes, puede consultar la referencia HTTP y redirigir las solicitudes que provienen de un dominio que no es suyo a "otra cosa").
Creo que la mejor manera es evitar hacer clic derecho en su página web, porque esa es la forma más conveniente en que un usuario normal intenta descargar el contenido, y puede considerarlo como un comentario si puede hacer esto solo porque nunca va a estar capaz de evitar que un geek informático o personas hackers lo descarguen, porque una vez que el contenido está en Internet, significa que ya está en el dominio público ...
Creo que la mejor manera es: TRANSMITIR EL VÍDEO EN PIEZAS CIFRADAS SEPARADAS.
Hay servicios de alojamiento de videos como vzaar que tienen esta funcionalidad. Por lo que yo sé, eso hará que sea realmente difícil de descargar directamente. Al menos para el 95% de las personas.
Pero, por supuesto, si el video se reproduce en la pantalla, la gente puede simplemente usar una grabadora de pantalla y algún software simple para grabar el sonido de la salida de audio (pero deberá tocar TODO para guardarlo, lo cual es totalmente inconveniente).
De acuerdo, cualquier imagen que el usuario pueda ver podrá guardarse en la computadora y no hay nada que pueda hacer al respecto. Ahora, si quiere bloquear el acceso a otras imágenes que el usuario no debería ver, en realidad lo estoy haciendo de esa manera:
- Cada enlace al "src" en su etiqueta de imagen es de hecho un envío de solicitud a un controlador en el servidor,
- el servidor verifica los derechos de acceso de ese usuario específico y devuelve la imagen si se supone que el usuario tiene acceso a ella,
- todas las imágenes se almacenan en un directorio al que no se puede acceder directamente desde el navegador.
Beneficio:
- El usuario no tendrá acceso a nada que no intente que tenga acceso a
Retirarse:
- Esas solicitudes son lentas ... especialmente si hay muchas imágenes en la misma página. No he encontrado una buena manera de acelerar eso, de hecho ...
En HTML estándar, no sé de todos modos.
Realmente no lo dijiste, pero supongo que estás teniendo problemas con las personas que se vinculan profundamente con tu contenido . Si ese es el caso, y está abierto al código del lado del servidor, creo que esto podría funcionar:
- Cree una página que acepte una identificación numérica, la asigne a una ruta de archivo del servidor, abra ese archivo, escriba el binario directamente en la secuencia de respuesta.
- En la solicitud de la página, genere un grupo de identificadores aleatorios y asócielos en las URL reales de los medios, y almacene ese lado del servidor de objetos de mapeo en algún lugar (¿en sesión?) Con una vida limitada.
- Renderice sus páginas con sus enlaces de medios apuntando a la nueva página de medios con la identificación adecuada como argumento de cadena de consulta.
- Borre el objeto de mapeo y genere todos los enlaces nuevos en cada devolución.
Esta :
- no impedirá que las personas descarguen desde su página
- definitivamente no es tan ligero como el HTML estándar
- y tiene su propio conjunto de problemas.
Pero es un esquema general de un proceso factible que podría ayudarlo a evitar que los usuarios se vinculen profundamente.
En resumen, no. Si alguien puede ver una imagen o video en su navegador, entonces, por definición, lo han descargado. Así es como funciona la web: está basado en el servidor del cliente. Todo lo que puede ver en su navegador (cliente) ha sido transferido a su computadora desde el sitio web remoto (servidor).
Esta es una publicación anterior, pero para video es posible que desee considerar el uso de MPEG-DASH para ocultar sus archivos. Además, proporcionará una mejor experiencia de transmisión para sus usuarios sin la necesidad de un servidor de transmisión por separado. Más información en esta publicación: ¿Cómo deshabilitar la descarga de video / audio en páginas web?
Inserta un gif transparente 1px x 1px justo dentro de la etiqueta <body>
:
<body><img src="route-to-images/blim.gif" class="blimover">
Luego, ajústelo con esto:
.blimover {
width: 100% !important;
height: 100% !important;
z-index: 1000 !important;
position: absolute !important;
top: 0 !important;
left: 0 !important;
}
Esto eliminará cualquier funcionalidad de clic de una página, ¡pero seguro evitará que las personas roben cualquier contenido!
Puede aplicar lo mismo a <div>
, <section>
, <article>
, solo nombre de la forma correspondiente e impida que se copie su copia o las imágenes.
Sin embargo, nada detiene una captura de pantalla ... ...
Me gustaría agregar un comentario más filosófico. Toda la intención de Internet, especialmente la World Wide Web, es compartir datos. Si no desea que las personas descarguen una imagen / video / documento, no lo coloque en la web . Es realmente así de simple. Demasiadas personas piensan que pueden imponer sus propias reglas en un diseño existente. Aquellos que desean publicar contenido en la web y controlar su distribución, buscan tener su pastel y comérselo también.
No se puede detener el robo de imágenes / videos, pero se puede hacer más difícil para los usuarios normales, pero no se puede dificultar a los programadores como nosotros (me refiero a los ladrones que conocen poca programación web).
Hay algunos trucos que puedes probar:
1.) Uso de flash como YouTube y muchos otros sitios como http://www.funnenjoy.com .
2.) Div overlaping o configuración de fondo de imagen (pero los usuarios con poco sentido pueden guardar fácilmente todos los recursos abriendo el elemento de inspección u otra opción de desarrollador).
3.) Puede deshabilitar el clic derecho y teclas específicas como CTRL + S y otras posibles con JavaScript, pero el principal inconveniente es que si el usuario deshabilita JavaScript, todos nuestros trucos fallan.
4.) Guarde la imagen en ninguno de los directorios en línea (si tiene acceso completo al servidor web) y lea esos archivos con lenguajes del lado del servidor como PHP cada vez que se requiera imagen / video y cambie el id. De imagen a tiempo o cree una secuencia de comandos que pueda cambiar ID después de cada acceso.
5.) Utilice .htaccess en apache para evitar el enlace de sus imágenes por otros sitios. puede usar este sitio para generar automáticamente .htacess http://www.htaccesstools.com/hotlink-protection/
No, no es posible.
Si puedes verlo, puedes obtenerlo.
No, no es. Puede bloquear los clics del botón derecho y cosas similares, pero si alguien quiere descargarlo, lo hará, créame;)
Pon tu imagen o video en formato flash. Funciona genial.
Puede configurar la imagen como imagen de fondo y tener una imagen de primer plano transparente.
Puede marcar carpetas o archivos para que no tengan acceso de lectura (cualquiera de los principales servidores web lo admite). Esto le permite almacenarlos en el servidor sin ningún nivel de acceso al mundo exterior. Es posible que desee hacerlo si tiene un servicio que genera imágenes para que otra persona lo descargue más adelante, o si utiliza su cuenta web para acceso FTP, pero no desea que nadie vea los archivos. (es decir, cargue un archivo .bak en el servidor para que otra persona pueda volver a FTP).
Sin embargo, como han dicho otros, entrar en áreas de derechos de autor donde las personas pueden ver la imagen o el video pero no guardarlos localmente no es totalmente posible, aunque hay herramientas para desalentar el uso ilegal.
Si está utilizando PHP, la mejor manera es controlarlo .htaccess
, debe tener en cuenta sus archivos, imágenes y videos en una carpeta / directorio por separado, y crear un nuevo archivo .htaccess
en este directorio con el siguiente:
RewriteEngine On
RewriteCond %{REQUEST_URI} /.(mp4|mp3|avi)$ [NC]
RewriteCond %{HTTP_REFERER} !^http://sample.com/.*$ [NC]
RewriteRule ^.* - [F,L]
La primera línea %{REQUEST_URI}
evitará que el archivo se %{REQUEST_URI}
través del navegador web o mediante curl
. La segunda línea %{HTTP_REFERER}
impedirá el acceso al imahe / video utilizando etiquetas HTML <img>
o <video>
desde cualquier sitio web, ¡excepto la excepción !
usted proporciona en lugar de http://sample.com/
que generalmente debería ser su sitio web.
También puede ver mi pregunta y la respuesta aceptada here para obtener más trucos en el lado del navegador.
Si solo desea que los usuarios autorizados obtengan el contenido, tanto el cliente como el servidor deben usar el cifrado.
Para video y audio, una buena solución es Azure Media Services, que tiene protección de contenido y encriptación. Incrustas el reproductor multimedia de Azure en tu navegador y transmite el video desde Azure.
Para documentos y correo electrónico, puede consultar Azure Rights Management, que utiliza un cliente especial. Actualmente no funciona en los navegadores web ordinarios, desafortunadamente, a excepción de los códigos únicos de uso único.
Sin embargo, no estoy seguro de cuán seguro es todo esto. Como otros han señalado, desde el punto de vista de la seguridad, una vez que esos bytes descargados están en la memoria RAM del "atacante", ya se han ido. Ninguna solución es 100% segura en este caso (corrígeme si me equivoco). Al igual que con la mayoría de la seguridad, el objetivo es hacerlo más difícil, por lo que el 99% no se molesta.
Tampoco hace daño marcar con una marca de agua sus imágenes con Photoshop o incluso en Lightroom 3 ahora. Asegúrese de que la marca de agua esté clara y en un lugar visible en su imagen. De esta forma, si se descarga, ¡al menos se obtiene la publicidad!
Tan pronto como vean su página que incluye la imagen o el video, el elemento se descargará en la carpeta temporal de su navegador. Entonces, si no quiere que se descargue, no lo publique.
puedes reducir la posibilidad pero no eliminarla ...
No los publique en su sitio.
De lo contrario, no es posible.
Las imágenes deben descargarse para que el cliente pueda verlas. Los videos son un caso similar, en muchos escenarios. Puede configurar scripts proxy para publicar los archivos, pero eso no soluciona el problema de evitar que el usuario obtenga su propia copia. Para una discusión más completa de este tema, vea la pregunta ¿Cómo puedo prevenir / dificultar la descarga de mi video flash?