Avatar billede bildsoe Nybegynder
10. oktober 2011 - 15:06 Der er 28 kommentarer og
1 løsning

Beskytte adgang til en video

Hej

Jeg vil gerne kunne beskytte videoer på min server uden at skulle flytte dem eller omdøbe dem. Er der nogen der har en idé til, hvordan jeg kan opbygge et system, hvor jeg giver adgang til et link til en video i et bestemt stykke tid hvorefter adgangen ophører? Brugeren skal ikke bare kunne aflæse videoens placering og derefter selv linke til den.

Jeg har bare brug for nogle idéer til hvordan jeg i hovedtræk opbygger sådan et system. Gerne som extension til Joomla, men ikke nødvendigvis.

Mvh
Thomas
Avatar billede olebole Juniormester
10. oktober 2011 - 15:26 #1
<ole>

YouTube har de seneste par år hældt oceaner af ressourcer ned i kampen for at skjule deres videoers reelle adresser. Som du formodentlig ved, flyder nettet ikke desto mindre med downloadere til YouTube videoer.

Der er næppe nogen, der har så megen erfaring med at beskytte videoer, som YouTube har - og de kan ikke engang give dig en idé til et system, der virker. Vil man have dine videoer, kan man få fat i dem, hvis du lægger dem på nettet.

/mvh
</bole>
Avatar billede micma18_ Nybegynder
10. oktober 2011 - 15:39 #2
Gem filens data binært i en database.
Når der kommer en legitim forespørgsel, skriv dataene til en temp fil, med random navn.
Slet filen efter tidsinterval.
Avatar billede olebole Juniormester
10. oktober 2011 - 15:59 #3
- og skriv et clairvoyance filter til din player, så den kan finde din video  =)

Du kan godt obfuskere adresserne til dine videoer og gøre det lidt mere besværligt at finde dem - men vil man have dem, finder man dem.
Avatar billede bildsoe Nybegynder
10. oktober 2011 - 16:09 #4
Kunne man lave et dynamisk .htaccess system. Så jeg bare kunne begrænse adgangen til mappen og adgangen til den udløb efter et stykke tid?

Hvordan gør OnDemand streaming selskaberne?
Avatar billede iver_mo Nybegynder
10. oktober 2011 - 16:12 #5
Simpelt:

Lav et krypteret link der fungerer som login/pass/tidsvalidering til den side hvor du viser dine videoer. Lav siden/videoerne så det kun kan vises hvis linket valideres...

Så er du godt hjulpet... mht. beskyttelsen af videoerne. Dem du giver linket kan selvfølgelig altid hapse dem i den tid linket er validt.

Mvh.
Iver
Avatar billede micma18_ Nybegynder
10. oktober 2011 - 16:15 #6
Du har jo stadig en fil indeholdene videoen på en offentlig tilgængelig placering....?
Avatar billede iver_mo Nybegynder
10. oktober 2011 - 16:17 #7
Taget fra http://en.wikipedia.org/wiki/Htaccess:

Blocking
Use allow/deny to block users by IP address or domain. Also, use to block bad bots, rippers and referrers. Often used to restrict access by Search Engine spiders.
Avatar billede iver_mo Nybegynder
10. oktober 2011 - 16:18 #8
placeringen beskyttes med pass, som anvendes af php scriptet, såfremt linket valideres...
Avatar billede olebole Juniormester
10. oktober 2011 - 16:19 #9
@iver_mo: Hvilke domæner og/eller IP'er skal mon så udelukkes?
Avatar billede olebole Juniormester
10. oktober 2011 - 16:20 #10
Hvis filerne beskyttes med password, kan kun registrerede brugere se videoerne - og de kan alle hente dem til egen PC
Avatar billede bildsoe Nybegynder
10. oktober 2011 - 16:22 #11
Ja, det gør heller ikke noget at de kan hapse videoen i perioden... Men hvad med bagefter. Så snart det har været dekrypteret kan de vel hente videoen bagefter fordi de kender kilden til den?
Avatar billede olebole Juniormester
10. oktober 2011 - 16:25 #12
@bildsoe: Ja, præcis! Ikke engang YouTube kan beskytte videoer fra download ... og de har virkelig gjort sig store anstrengelser
Avatar billede bildsoe Nybegynder
10. oktober 2011 - 16:31 #13
Så må den "bedste" løsning jo næsten være at lade filmen ligge udenfor webroden og så kopiere den hen i en mappe beskyttet med kodeord, og så have en funktion til at fjerne mappen efter et stykke tid. Lidt ligesom databaseløsningen en anden foreslog.

Men har egentligt godt læst om Youtube og deres indsats. De snakkede tidligere om kun at lade videoerne ligge i lav kvalitet så folk ikke gad, at hente dem...
Avatar billede iver_mo Nybegynder
10. oktober 2011 - 16:50 #14
Olebole... det passer jo bare ikke.

En gang til:

1) Kilden er .htaccess beskyttet af et pass som kun php scriptet kender.

2) Et validt link giver adgang til siden med php-scriptet, som henter videoen vha. i 1) nævnte adgangskode.

3) Direkte adgang til kilden kan ikke opnås uden at php-scriptet og/eller uden at kende .htaccess pass.

Hvis du virkelig ikke kan se den store forskel vil jeg gerne pensle den ud: yt videor skal være tilgængelige for alle hele tiden og er derfor meget svære at beskytte. I bildsoe's løsning er der mulighed for pass-beskyttelse gennem et fremsendt link. Denne mulighed har yt heller ikke.

bildsoe:

Filen kan også lægges helt beskyttet og så kopieres over i en dynamisk temp lokation, som efterfølgende slettes.

Alt på nettet kan hackes, men derfor kan man altså godt lave en løsning der udelukker 99,9999% i stedet at lægge det frit frem for hele den del der kan læse en source url.

Det kan sagtens laves.
Avatar billede olebole Juniormester
10. oktober 2011 - 17:04 #15
Jamen, playeren skal da have en URL at arbejde med  =)

Hvis du kan lave en effektiv løsning, grovspilder du jo din tid! Skriv til YouTube, og du har job til adskillige millioner dollars om året  *o)
Avatar billede hansepeter2 Praktikant
10. oktober 2011 - 17:40 #16
Spørgsmålet er, om han ikke bare vil have et system, hvor man ikke bare kan komme fra gaden og se videoen, men lige skal godkendes først.

At godkendte brugere så kan gemme den, det er så en anden sag.
Avatar billede gentlebug Nybegynder
10. oktober 2011 - 17:59 #17
Det eneste du kan opnå er at drille mindre erfarne brugere der vil have din video.

Det er et fact at hvis din video kan afspilles - så kan den rippes.

Den bedste metode du kan bruge til at beskytte din video er ikke at uploade den.
Avatar billede TIversen Novice
10. oktober 2011 - 20:11 #18
Prøv at tage et kig på Vimeo.com

Her kan du lægge dine videoer op og samtidig beskytte dem med et kodeord, så det kun er folk med kodeordet der kan se dem! Ved ikke om du absolut vil have dem på din egen server, men hvis ikke så er dette ihverfald en nem og effektiv løsning!

Mener også du kan gøre det samme med videoer på screencast.com :D
Avatar billede olebole Juniormester
10. oktober 2011 - 20:19 #19
@bildsoe: Hvis du accepterer, at brugeren skal være logget ind, og at han må kunne rippe videoen i dens aktive periode, kan du gøre følgende:

1) Læg alle videoer i en mappe udenfor webspace.
2) Lav en video, der venligt gør brugeren opmærksom på, den efterspurgte video ikke længere er aktiv.
3) Opret en DB-tabel med felterne 'id', 'path' og 'udløb'
4) Skriv en kode efter følgende princip:


<?php [pseudo kode]

$id = $_GET['movie'];
$result = query("hent `path` hvor `id`=$id og `udløb`<NU");

if (rækker i $result > 0) {
    $path = fetch();
} else {
    $path = 'no_longer_available.mov';
}

header("Content-Type: den_rigtige");

læs $path binært og skriv ud her

?>


Så kan videoerne kun tilgås, indtl udløbstidspunktet. Derefter vises default videoen. En video kan gøres aktiv blot ved at sætte et nyt udløbstidspunkt.
Avatar billede gentlebug Nybegynder
10. oktober 2011 - 20:31 #20
olebole har en løsning, men har dog følgende problemer:
Det vil være til gene for dine brugere - ved bookmark af videoer til senere brug vil disse ikke virke.
Du viser kun videoer til indloggede brugere.
Man kan stadig rippe videoen og smide den op et andet sted.

I min verden bør man til hver en tid hjælpe sine egne brugere, også sætte det at folk kan linke til videoerne som lavere prioritet. Har du overvejet blot at skrive hvorfra videoen kommer i din video?
Avatar billede olebole Juniormester
10. oktober 2011 - 20:42 #21
Brugere, der er logget ind - og som er informeret om, at videoen kun er midlertidig og derfor ikke bør bookmarkes - vil nok føle sig mere generet af det våde vejr  =)

Som jeg læser spørgeren, så er der tale om videoer, der forældes efter en periode - og så ville det jo være til unødig gene for brugerne, hvis de var tigængelige derefter.
Avatar billede gentlebug Nybegynder
10. oktober 2011 - 20:50 #22
Ændrer ikke på det er elendig brugervenlighed ikke at lade sine brugere gemme videoerne.
Hvis disse blev forældet efter en periode - kunne man vel bare fjerne disse.

Jeg vil ikke nedgøre dit svar, jeg gør bare opmærksom på de problemer jeg kan se i det. Derfor jeg også tidligere påstår det ikke kan laves uden problemer.
Avatar billede olebole Juniormester
10. oktober 2011 - 21:08 #23
@gentlebug: Du mener vel, at det ikke ændrer på, at du synes, der er tale om elendig brugervenlighed. Det er du såmænd også velkommen til at synes om YouTube og masser af andre sites.

Naturligvis kan man fjerne de forældede videoer - og det er jo præcis, hvad brugeren oplever, hvis han finder på at bruge et gammelt link, han evt. måtte have skrevet ned eller bookmarket (mod alle råd). Videoen er fjernet!

Jeg har derimod ikke det fjerneste mod at nedgøre dit svar (ikke dig, men dit svar), da jeg finder indholdet frygtelig forvrøvlet
Avatar billede gentlebug Nybegynder
10. oktober 2011 - 21:14 #24
Jeg forstår overhovedet ikke din pointe?
Youtube videoer kan jeg netop bookmarke indefor en rimelig tid.

Kan du ikke se problemet i at jeg ser en fed video på spørgerens-side og tænker, hey den vil jeg se senere og gemmer denne. Eller tænker, hey den skal min faster/ven/hund/etc se, og smider linket på facebook eller lign?

Det er fint at beskytte sit indhold, men når det går ud over funktionaliteten for folk der faktisk skal have lov til at se det - forstår jeg ikke.
Avatar billede olebole Juniormester
10. oktober 2011 - 21:28 #25
Måske, det ville være lettere at forstå hinanden, hvis du var lidt mere klar i spyttet. Hvad mener du mon er dårlig brugervenlighed? At man ikke kan "gemme videoerne" eller "bookmarke videoerne"? Du roder de to ting sammen, men når vi andre taler om at "gemme videoer", mener vi "downloade videoer til egen PC".

Der er ingen andre, der har talt om videoer, der skal deles med Gud og hver mand. Der kan meget vel være tale om videoer for et helt specifikt publikum. Det kunne f.eks. være en sportsklub, der for et specielt hold har en video liggende med et specielt taktikoplæg for en specifik kamp.

Hvorfra mener du at vide noget om, hvem der "faktisk skal have lov at se det"? Er sandheden ikke, at kun spørger har nogen somhelst anelse om den slags? Sandheden er i hvertfald, at nettet består af meget andet end pixie-undeholdning og mediefiler, der skal deles med alle og enhver
Avatar billede bildsoe Nybegynder
10. oktober 2011 - 21:54 #26
Tusind tak for alle svarerne.

Måske jeg kan uddybe og forklare min situation.

Jeg har en kunde der ønsker at kunne lægge videoer op på sit site så han i forbindelse med et tilbud kan vise en potentiel kunde den. Det er kun for kunder han allerede er gået i dialog med og derfor skal der være begrænset adgang til videoen, altså skal den beskyttes med kodeord i en eller anden form.

Tilbudet udløber efter et stykke tid, og på dette tidspunkt vil han gerne fjerne kundens adgang til videoen. Da der er mange kunder gennem systemet vil han gerne forholdsvist nemt kunne oprette de her tilbud, derfor ønsker han ikke at manuelt skulle fjerne/omdøbe på anden måde behandle videoen.

Ydermere vil han gerne gøre det "besværligt" for kunden at downloade videoen. Kunden må selvfølgelig gerne bookmarke videoen, men både kunde og sælger er bevidste om udløbstidspunktet.

Jeg er selvfølgelig klar over at alt video kan rippes. I princippet kunne man bare lave en screen-recording mens videoen afspilledes, jeg tror dog ikke størstedelen af kunderne har den fornødne viden eller behov for at gøre dette.

Så det er mere bare funktionaliteten jeg søger.

@Olebole og iver_mo: Derfor virker begge jeres forslag gode og tror jeg vil kigge nærmere på dem. Er det sådan som i har foreslået On Demand Video udbyderne gør?
Avatar billede olebole Juniormester
10. oktober 2011 - 22:33 #27
Nej, sites, der driver decideret video streaming, anvender specielle webservere til formålet.

Man kunne evt. lade et cronjob tjekke databasen for udløbne videoer. Scriptet kunne så slette de fundne posteringer med tilhørende vidoer. Derved holdes serveren hele tiden ren, uden din kunde behøver gøre noget for det. Han skal bare oprette videoerne og sætte et udløb.

Det behøver ikke være et cronjob. Du kan også bare inkludere slette-scriptet i en eller anden fil - f.eks. i administrations modulet
Avatar billede bildsoe Nybegynder
11. oktober 2011 - 09:04 #28
Ok, ved faktisk ikke, hvor ofte min kunde logger ind, så cron-job er nok den bedste løsning.

@Olebole, smider du ikke også et svar, så deler jeg pointene mellem dig og iver_mo.
Avatar billede olebole Juniormester
11. oktober 2011 - 14:56 #29
Ellers tak, jeg samler ikke længere points  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester