Avatar billede dd-man Nybegynder
11. juni 2003 - 21:12 Der er 36 kommentarer og
2 løsninger

Fortsættelse af Streaming

Fortsættelse af:
http://www.eksperten.dk/spm/363446

Jeg har et spørgsmål, omkring HVORDAN man kan beskytte filen imod at folk, som er logget ind, kan hente filen direkte ned...

Eks ved at lægge filen i en mappe, som ikke kan tilgås via Internet direkte, men kun via et php-script, som henter den i en mappe som ikke findes på webhotellet (altså eks. 2 mapper længere ude af webmappen)

Håber der er en mulighed i hvordan evt.
Avatar billede mjl Nybegynder
11. juni 2003 - 21:15 #1
if ($REMOTE_ADDR == 'din IP') {
echo din side
}
else {
Du må ikke se noget - farvel...
}
Avatar billede mjl Nybegynder
11. juni 2003 - 21:16 #2
Alle mine filer, der ikke rager andre, er sikret på denne måde - det kræver dog, at du har fast IP
Avatar billede mjl Nybegynder
11. juni 2003 - 21:17 #3
...hvis jeg har forstået det rigtigt :O)
Avatar billede dd-man Nybegynder
11. juni 2003 - 21:20 #4
Nej, det skal ikke kun være for mig...

Hvis jeg har et login system, hvor brugere kan logge ind og streame en film... det må de godt... men det må ikke være sådan at de direkte kan skrive adresse linien når de er logget ind, såsom: www.websted.dk/filmmappe/filnavn.mpg

Det SKAL køre gennem et PHP script...

Så det skal ikke kun være mig og min IP, som må logge ind og se filer...
Avatar billede ohmish Nybegynder
11. juni 2003 - 23:11 #5
har du adgang til mapper under din WWW mappe - altså kan du overhovedet tilgå dem fra et script? hva hedder din udbyder, så er det hurtigt at finde ud af.
Avatar billede ohmish Nybegynder
11. juni 2003 - 23:12 #6
"over" mente jeg
Avatar billede ohmish Nybegynder
11. juni 2003 - 23:18 #7
hvis du overhovedet KAN gøre det.. skal mit forrige script bare tilpasses lidt, så kan du sagtens bruge det.
Avatar billede dd-man Nybegynder
11. juni 2003 - 23:20 #8
Jeg har egne servere m.m.
Så det er intet problem, har fuld rådighed og adgang til det.

og hvis jeg kan se en tilpasset udgave jeg kan teste, vil det bare være perfekt :)
Avatar billede ohmish Nybegynder
11. juni 2003 - 23:24 #9
ok. jeg retter det lige til.
Avatar billede ohmish Nybegynder
11. juni 2003 - 23:47 #10
hmm.. når jeg tænker over det, så er det jo netop det mit forrige script gør, nemlig: forhindrer direkte browseradgang, men åbner adgang for scriptet.
det mangler bare en extrating så man ikke kan downloade filen. :)
Avatar billede dd-man Nybegynder
12. juni 2003 - 00:11 #11
Ja, man må ikke kunne downloade filen, eller deep-linke eller hvad det hedder til den... eks. skrive:

www.domæne.dk/film/filmnavn.avi

Det som jeg også ligesom helst vil udenom, hvis det også kan lade sig gøre (men det burde det jo automatisk gøre, idet der er en .htaccess fil i mappen...)
Avatar billede ohmish Nybegynder
12. juni 2003 - 00:30 #12
hvorfor må folk egentlig ikke hente filmen men gerne se den med browseren?
Avatar billede dd-man Nybegynder
12. juni 2003 - 00:42 #13
Hvis der er copyright på filerne... eller hvis det er "erotiske" film, eller andre film, som folk godt må se, men det skal ikke bare være muligt for folk at distribuere det som alt muligt andet "lort" så let... :)
Avatar billede ohmish Nybegynder
12. juni 2003 - 00:48 #14
ok. jeg grubler og søger og leder.
jeg kan sgu ikke umiddelbart finde på en løsning på det.

det skulle da lige være, hvis du lavede en slags "stamp" som produceres af din side, og sammenlignes med filens stamp i databasen. det blir hurtigt kompliceret.
Avatar billede ohmish Nybegynder
12. juni 2003 - 00:51 #15
det er svært at holde kattelemmen lukket for mus og rotter..
Avatar billede dd-man Nybegynder
12. juni 2003 - 00:54 #16
Ja, det gør heller ikke noget at det er "MULIGT" at få fat i tingene.... bare det kun er dem, som virkelig gør alt for at komme ind, og som er logget ind, og som har forstand på det, kan få adgang til filerne.. .så synes jeg det er sikkert nok...

og så helst køre på .htaccess login-system hvis muligt.
Avatar billede ohmish Nybegynder
12. juni 2003 - 01:04 #17
du kører egen server siger du... ok :)

lav en .htaccess fil i mappen du vil beskytte, med indholdet:

deny from all
AuthType Basic
AuthUserFile .htpasswd
AuthName "film"
require valid-user
satisfy any


gå herind: http://freebsd.andersenit.dk/ og lav en bruger (kryptér password).

put den genererede linie i en ny fil: .htpasswd

og gem filen i din servermappe. f.eks: C:\server\Apache2
eller et andet sted udenfor webscope.


nu kan kun kun ole med det rigtige password komme ind i mappen..

hvis du skal bruge flere konti, placerer du dem bare linievis i .htpasswd filen.

f.eks:

ole:$1$7214dce3$EZKNXRpW8Zc8Y89xBFFbU/
egon:$1$17374c69$EvQ9i52t3nMXYjY4SzLEm1
osv.
osv.
Avatar billede ohmish Nybegynder
12. juni 2003 - 01:05 #18
lad dig ikke skræmme af ordene "AuthType Basic" og "satisfy any". der er ikke højere trin af sikkerhed.
Avatar billede ohmish Nybegynder
12. juni 2003 - 01:09 #19
til de skeptiske: jeg hverken reklamerer eller arbejder for andersenit/azero. http://freebsd.andersenit.dk er bare en nem og no-bull-shit side til kryptering.
Avatar billede dd-man Nybegynder
12. juni 2003 - 01:09 #20
Okay, heh, troede lige :)


Men hvad så med fil.php?filmID=xx

Hvordan er det så muligt at folk kan få adgang til filmnene via det script o.l.?

(kommer tilbage i morgen 9.00)
Avatar billede dd-man Nybegynder
12. juni 2003 - 01:11 #21
... og for resten, så tror jeg at "ole"'s kodeord er "ole"... hvis jeg lige skulle prøve at gætte-dekryptere :)

ses i morgen, håber det med php scriptet også kan lade sig gøre.
Avatar billede ohmish Nybegynder
12. juni 2003 - 01:19 #22
hmm.. ja nu tvivler jeg lidt på om du overhovedet KAN undgå at folk finder frem til og downloader en fil.

For hvis de i forvejen har adgang til mappen, har de også adgang til filerne. så du blir sgu nok nødt til at bruge noget extra dér. noget a la mit script + en gang referrer-validering (hvor kommer brugeren fra) eller filestamp af en art. halleluja ay caramba!
Avatar billede ohmish Nybegynder
12. juni 2003 - 01:22 #23
jeg ku forestille mig at f.eks hr. Erik Jacobsen ved noget om det.
Erik kom liige :)
Avatar billede dd-man Nybegynder
12. juni 2003 - 09:24 #24
:)


er det muligt, at det kunne køre eks. database baseret, sådan at man kan lave fil.php?filID=34

i stedet for at skrive navnet på filen (det hjælper jo bare folk til lettere at få adgang til filen)
Avatar billede dd-man Nybegynder
12. juni 2003 - 10:01 #25
Jeg prøver at teste osv.. men jeg kan ikke få det til at virke, som du...


Når jeg eks. vil vise en fil, så skriver den kildekoden til filen... altså en MASSE mærkelig tekst.

Ud over det, så hvis jeg prøver at få adgang til mappen hvor .htaccess filen ligger, så siger den:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Avatar billede ohmish Nybegynder
12. juni 2003 - 12:21 #26
Internatl Server Error beskeden erstattes med din egen side.

Sæt dette ind som en linie i .htaccess filen.
ErrorDocument 500 http://ohmish.lir.dk/500.html

500.html kan så indeholde f.eks:

ingen adgang
Avatar billede ohmish Nybegynder
12. juni 2003 - 12:27 #27
erstat med din egen domænesti.
Avatar billede ohmish Nybegynder
12. juni 2003 - 12:37 #28
mht. database-id's kan det sagtens lade sig gøre...

så skal du lave en tabel i stil med:

CREATE TABLE film (
  id int(11) NOT NULL auto_increment,
  filnavn varchar(50) NOT NULL,
  PRIMARY KEY (id)
);



fil.php skal rettes til:

<?php
HEADER("Expires: Wed, 01 Jan 2001 18:00:00 GMT");
HEADER("Last-Modified: " . GMDATE("D, d M Y H:i:s") . " GMT");
HEADER("Cache-Control: no-store, no-cache, must-revalidate");
HEADER("Cache-Control: post-check=0, pre-check=0", FALSE);
HEADER("Pragma: no-cache");
include ("include/check.inc");
$id = $_GET['id'];
if (preg_match ("(\.)", $id) && $logged=="ok") {
header ("Location: fil2.php?id=".$id);
} else {
header ("Location: 500.html"); exit; }
?>



fil2.php skal rettes til:

<?php
include ("include/check.inc");

$id = $_GET['id'];
$hent = @mysql_query("SELECT filnavn FROM film WHERE id='$id");
$v = @mysql_fetch_array($hent);
$filnavn = $v['filnavn'];

if ($logged=="ok" && $filnavn) {
if (preg_match ("/(mov)$/i", $filnavn)) { $filtype = "video/quicktime"; }
elseif (preg_match ("/(mpg|mpeg||mpe)$/i", $filnavn)) { $filtype = "video/mpeg"; }
elseif (preg_match ("/(avi|divx)$/i", $filnavn)) { $filtype = "video/x-msvideo"; }
header("Content-Type: ".$filtype);
header("Expires: ".gmdate("D, d M Y H:i:s",time()+60*60*24*7)." GMT");
readfile("film/".$filnavn);
}
else { header ("Location: 500.html"); exit; } // 500.html er genbrug af htaccess fejlsiden.
?>


nu kan du bruge fil.php?id=50 til at hente og bruge filnavnet for film id 50.
Avatar billede ohmish Nybegynder
12. juni 2003 - 12:46 #29
www.cphmusic.net/eksperten er opdateret nu
Avatar billede andy Nybegynder
12. juni 2003 - 13:20 #30
ohmish, har du testet det der? Det ser ud til php scriptet kører indtil btowseren har downloaded hele filmen. Det er bestemt ikke optimalt....
Avatar billede ohmish Nybegynder
12. juni 2003 - 14:23 #31
meningen er jo at man ska åbne filen med <embed> eller lign.
men jeg har faktisk ikke testet det med store filer.
Avatar billede ohmish Nybegynder
12. juni 2003 - 17:31 #32
nu har jeg testet med en fil på 1 mb. det virker perfekt og serveren belastes ikke.

andy> hva mener du med ikke optimalt? hvad er optimalt?
Avatar billede dd-man Nybegynder
12. juni 2003 - 17:40 #33
Har du ICQ eller noget?

Jeg må sige at når jeg skriver adressen: domæne.dk/fil.php?id=1

så sker der faktisk intet... (andet end at der kommer fejl)
Avatar billede ohmish Nybegynder
12. juni 2003 - 17:51 #34
jeg bruger ikke icq/mirc mere. er gået over til messenger.

men hvad er fejlen?
Avatar billede dd-man Nybegynder
12. juni 2003 - 17:56 #35
Har du messenger? ( dedc@hotmail.com )

Jeg har Miranda... det er et Open source ICQ, som kan installeres vildt mange plugins i :) har eks. MSN i det også, så derfor kan du bare skrive :)
Avatar billede ohmish Nybegynder
12. juni 2003 - 18:43 #36
der er no-response på mess.
Avatar billede dd-man Nybegynder
12. juni 2003 - 21:25 #37
Ja, det kører lidt ustabilt.. mit internet som er lidt mærkeligt. :)
Avatar billede dd-man Nybegynder
23. juni 2003 - 10:17 #38
Tak, jeg opretter et spørgsmål mere, hvis der er problemer :)
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