05. maj 2001 - 19:38Der er
76 kommentarer og 2 løsninger
Link / fil beskyttelse
Jeg er en af alle de mange der har en server sat op, men er træt af at folk \"stjæler\" links til filer jeg har liggende lokalt. Nu er det så at jeg vil blive kanon glad hvis et eller andet kvikt hoved kan fortælle hvordan jeg kan skjule hvilken placering den fil man downloader har... (det gør intet at ipén på serveren er angivet). Det må meget gerne køre over en Access database hvis det er nødvendigt..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Lav en database, som minimum indeholder et ID-felt og et \"link-felt\".. ************** Default.asp **************
IF Request.Querystring(\"redirect\") = \"yep\" then strSQL = \"SELECT LINK FROM LINK_DATABASE WHERE ID = \" & Request.Querystring(\"ID\") & \"\" set rs = my_conn.execute(strSQL) Response.Redirect rs(\"LINK\") End If
SQL = \"SELECT * FROM LINK_DATABASE\" set linkRS = my_conn.execute(SQL)
Du kan downloade min fede software her: Do while not rs.eof Response.Write \"<a href=default.asp?redirect=yep&id=\" & linkRS(\"ID\") & \">Mit Program</a>\" rs.movenext loop
Øh, Thomas_Regin.. Jeg ved godt jeg måske er lidt krævende, men jeg fatter ik faens meget asp og sådan.. Jeg er villig til at forhøje 200 points mere hvis du vil sende mig en færdig løsning. Altså det der asp dokument der skal til og databasen så det er klart til brug. Bare den kan liste en masse links fra en access database. (har ikke SQL understyttelse. Håber det er noget du har mod på. ?
thomas_regin:> du kan IKKE gøre det på den måde. Jeg bruger GetRight til at downloade med og der vil jeg altid få vist URL\'en. Den eneste måde du kan gøre det på er at læse den fil der skal hentes og udskrive den med Response.BinaryWrite. Der skal se\'følig en smule headers på til at fortælle browseren hvad det er der bliver sendt til den. Så vil du kun få en url som ligner f.eks.:
Eller måske endda så man undgår at bruge en DB så smider du alle dine filer der kan downloades i en mappe. f.eks. /filer/. I dit script laver du så sådan at man kan skrive :
Ja, man kan sagtens lave en Response.BinaryWrite, men for at gøre det så nemt som overhovedet muligt er det jo en mulighed, som jeg beskrev ovenfor, at lagre link\'sne i DB\'en!.. Men jeg giver dig ret - den er ikke 100% sikker!.. Det kommer jo helt an på, hvilken type sikkerhed man har brug for!.. 512bit kryptering er jo osse en mulighed.. ;-)
Technohead -->>
Jeg ville gerne lave funktionen til dig, men jeg får desværre ikke tid i aften, da jeg er fuldstændigt begravet i arbejde!.. :(
thomas regin> mange tak... så venter jeg da spændt.. :)
tdaugaard> nej det tror jeg ikke..
Jeg kan da fortælle at meningen er at jeg er træt af at kunne snuse op at der er andre end mig der kan li´ at lave links til de freeware programmer og wallpapers jeg har liggende på min server.. Og det er jo ret nederen at der så bare blir linket til mine filer, for det betyder jo for mit vedkommende en spildt båndbredde da det jo så downlodes fra min server. Krytering er langt fra nødvendigt da jeg er ligeglad med at folk kopiere tingene.. det er bare det at de ik skal linke til det der ligger på min server..
thomas_regin:> som technohead skriver så MÅ man under ingen omstændigheder kunne se adressen til filerne. Det vil man ALTID kunne næsten ligemget hvordan du gør, men hvis man gør det med .BinaryWrite sådan at en .ASP filfaktisk bliver downloaded (eller det som man skriver til browseren) så kan man ikke. Jeg har dog ikke kunne få det til at virke da jeg ikke kender MIME typerne for f.eks. .ZIP, .EXE osv.
technohead:> men er du da tilfreds med at det bliver lagt i en database? Alle dem der bruger download managers (GetRight, Go!Zilla osv.) vil altid kunne se URL\'en da det er DEM der modtager en \"302 Redirect\" status, som sender personen videre til den egentlige fil og DA vil man kunne se URL\'en til filen.
Det vil være fint det med databasen... Jeg vil heller ik være urimeligt krævende når jeg ik engang selv er i stand til at lave et sådan script med en DB. Men ehm, ellers har jeg jo stadig muligheden at bruge www.anti-leech.com hvis det er noget det skal beskyttes optimalt, (det er bare så faens irriterende at skulle bruge dem, da deres server er skod langsom når man opretter nye links med filreferæncer der er helt hen i skoven...) Men de fleste gidder vel ik bruge deres tid på at finde de \"rå\" links på en side du ik engang uden videre kan hive fat i source koden på ? Så, den der BinaryWrite ved jeg ik helt noget med, jeg kan garanteret ik engang finde ud af at sætte den op til det.... så egentlig er jeg tilfreds nok med det Thomas Regin kan fremstille til mig...
...Men selvfølgelig, hvis du er i stand til at forklare hvordan jeg sætter den der BinaryWrite op, og kan give en løsning på en db og hovedfil så det er køreklart... så er det da ok.
Men gir kun pointne væk hvis det virker på min server...
technohead:> \"Men de fleste gidder vel ik bruge deres tid på at finde de \"rå\" links på en side du ik engang uden videre kan hive fat i source koden på ?\" det komemr an på hvem \"de fleste\" er ..
nåh ja... men jeg kan jo ik kræve guld og grønne skove af jer vel ? men selvfølgelig er jeg da modtagelig overfor en løsning med den dersens BinaryWrite... men skam også den anden.
technohead:> \"men jeg kan jo ik kræve guld og grønne skove af jer vel ?\" for 450 point, jo... sådan en DB løsning havde jeg gladeligt lavet for 150-200 point, så for 450 point kan du sagtens kræve lige hvad du har lyst til inden for rimelighedens grænser.
ok... men så venter jeg da spændt på at der er en flink gut eller gutinde der gider hjælpe med at at få sat en løsning op som du beskriver.. Jeg er ik helt så garvet bruger her på eksperten så jeg har ingen anelse om det med pointne... men tak så :)
Her er en lille fil, som jeg netop har lavet til dit brug!.. Undskyld forsinkelsen!.. Jeg skal dog lige advare at dette er VIRKELIG basic security!.. Som Tdaugaard sagde, så er den eneste mulighed faktisk at bruge binære fil-overførsler m.m, men det har jeg desværre ikke tid til at lave i denne weekend!..
Instruktion: Pak default.asp og LINKS.mdb ud af zip-filen, og læg dem i en vilkårlig mappe på din server. Kør default.asp.. That\'s it!.. Opdatering sker direkte i databasen. Man kan selvfølgelig lave en automatisering af dette, men dette burde være nok til at starte på!..
Ok det er jo ik helt ved siden af den måde jeg havde udtænkt det skulle virke på :)
Nu ved jeg ik hvorvidt du er villig til at prøve at lave det med den der binære fil overførsel i løbet næste uge - weekend ? Men i hvert fald fortjener du point for det her :)
såå... ja, jeg venter spændt på et svar inden jeg fyre løs med point givningen.
technohead:> jeg har lavet et eksempel på det der med Response.BinaryWrite men det funker ikke helt da jeg ikke kender MIME typen (til \"Content-Type\" headeren) for f.eks. ZIP/EXE osv.
Takker mange gange!.. Det var da kun hyggeligt, at hjælpe dig!.. :) Jeg kan sagtens prøve at lave en løsning til dig, som holder 100% med hensyn til sikkerhed!.. Det bliver i så fald i næste uge!..
Tdaugaard: MIME typen for zip og exe og så videre er da helt simpel: content/type=application/zip og almindelige exe-filer hedder vel bare multipart/form-data ??..
thomas_regin:> ehm .. okay .. så skal jeg lige have den til at komme med nogle BRUGBARE data (min ZIP fil var ikke ligefrem \"udpaknings klar\" *G*).. men jeg er da på vej :o)
Nej, nej .. se\'følig får du det at se .. det gør alle dem der vil ..
Og jeg bruger mySQL lokalt jo .. (ikke lige i det projekt her, men ellers ..)
Tell me about it!.. Jeg har osse prøvet at lave en funktion som den du er igang med, bortset fra, at den skulle gemme diverse applikationer, som binære data i SQL-server... DAMN, det var svært!.. Den ville godt uploade, men når det skulle den anden vej igen, så fik jeg samme problem som dig!.. Zip ville ikke udpakkes, og Exe ville ikke køre!.. Men ellers virkede det fint!.. *G*
Ja, jeg mente jo nok, at jeg havde hørt, at du brugte MySQL.. Vi har jo en fælles bekendt i Kristian, som laver noget for Herlevnet..
Hejsa Brian.. Hvis du ikke har MySQL understøttelse, så skulle du måske prøve at installere den lokalt på din server!.. Det sparker virkelig R.., hvis man altså ikke lige har SQL-server, som er gude-databasen!!.. Altså, hvis du spørger mig!..
hehe.. man skulle tro det er sådan yahoo briefcase er opbygget så´.. der blir jo nogle gange smidt et par ekstra bytes på så du får en \"dårlig\" fil.. Nå et sidespring fra mig, sorry :)
thomas_regin:> meget rart at vide :-) Jeg er nemlig også med på \"vogenen\" med at lave på det som Kristian og Tue skal lave .. f.eks. er det vist min chat der skal bruges ...
Jeps!.. Har set din chat, og er meget imponeret!.. Den er virkelig lækker!!.. Jeg tror faktisk, at jeg vil sende dig en mail vedr. den chat, hvis jeg må få din adresse!
Brian: >> Hvis ikke Tdaugaard får lavet funktionen til dig i aften, så skal jeg nok kigge på det ASAP!!.. Jeg har nemlig helt vildt lyst til at slå ham, for at få nogle points!.. Det ville nemlig blive min første gang, tror jeg, eftersom tdaugaard *altid* kommer mig i forkøbet!.. *G*
hehe.... ja jeg må indrømme at jeg syntes i må aftale hvordan jeg skal dele pointne ud når det er klart. Det lyder jo som om i hjælper hinanden :)
Men det må i som sagt finde ud af.. jeg ved bare at der er de 450 point at dele ud af. Så skal jeg nok aflevere dem på den måde i vil have dem uddelt... (altså kan du stadig hvis du slår ham få samtlige points, eller være flink at dele i den mængde du mener)... ...(hvis)... *S*
tdaugaard: >>nåh ja... det krævede stadig den dersens FileSystemObject ik ?
Jeg kan få installeret hvad jeg skal bruge.. men aner ik hvad, (og ik mindst hvordan), man sætter det op. Jeg køre med IIS 5.0 og det eneste ekstra jeg har lagt ind til understyttelse af mere sjov er PHP.
Så virker de fandme! *WEEE* Jeg er bare ALT for godt *GG* Det tog en frygtelig masse Chr/ChrB/Asc/AscB/Mid\'s ov. men nu er den der .. det funker fint :-)
Hvis bare du har IIS installeret så er FileSystemObject der allerede, med mindre du har slået det fra.
Hvilke filer skal det virke med ? Indtil videre kan jeg bruge \"application/zip\" til binære filer (ZIP, ACE, EXE, DLL, BMP, JPG osv.) men ren tekst kan man ikke downloade som fil. (et .DOC vil blive vist i browseren ..)
Hmm .. jeg går i seng nu, så jeg vender tilbage i morgen. Det virker, men der skal lige laves sådan at man kun kan downloade hvis den side der blev linket fra ligger på en speciel server, eller side.
Her er scriptet indtil videre:
<% Response.Buffer = True
strFile = LCase(Request(\"file\")) If strFile > \"\" Then strDLFile = \"filer/\" & strFile
Set fso = Server.CreateObject(\"Scripting.FileSystemObject\") If fso.FileExists(Server.MapPath(strDLFile)) Then Set file = fso.OpenTextFile(Server.MapPath(strDLFile)) Response.AddHeader \"Content-disposition\", \"filename=\" & strFile Response.ContentType = \"application/zip\" Response.AddHeader \"Pragma\", \"no-cache\" Response.AddHeader \"Expires\", \"0\"
Do Until file.AtEndOfStream Response.BinaryWrite ChrB(Asc(file.read(1))) Loop Response.End Else Response.Write \"The requested file does not exist on this server!<br>\" Response.Write \"File: \" & strFile End If Else Response.Write \"Error: filename missing!\" End If %>
oki... det ser jo ud til at fungere meget godt, men man kan jo stadig linke sig til dem ved at skrive det nye \"link\", så jeg venter spændt på en \"server cheker\" eller hvad jeg skal kalde det :)
Du har ikke mulighed for at køre MS SQL server eller MySQL, vel!?.. Problemet med Access er, at når man begynder at arbejde med Binære dataoverførsler på mange megabytes, så begynder din maskine at opføre sig som en 286\'er fra 1900 og hvidkål!..
thomas regin:> Hvis jeg dog bare vidste hvordan jeg bruger MySQL... Men Tdaugaards version virker ganske udemærket, der mangler bare en server checker. (bare og bare... jeg aner ik hvor svær sådan en er at lave)
Techno >> Uden database!?.. Hmmmm.. Jeg ville nu helt klart anbefale, at man brugte én eller anden form for database til at opbevare de rå binære data. På den måde kan man nemlig, helt enkelt, ved hjælp af en session-variabel checke om brugerne har adgang til at downloade pågældende fil. Har de ikke det, ja, så kan de prøve nok så mange gange uden held!.. Dvs, at man får skåret alle Leech\'erne væk!.. :)
Jeg vil helt klart anbefale dig at installere en database server, som f.eks MySQL. Det er nemt. Selv på en Win98 maskine og PWS. Du downloader filen(version 3.23) fra http://www.mysql.com/downloads og kører EXE filen. Derefter er du faktisk klar!.. Hvis du ikke kan downloade MySQL og få den installeret, tilbyder Microsoft at du kan downloade en evaluerings-udgave af SQL-server, som efter min bedste overbevisning, er den bedste database-server der nogensinde er lavet!..
Jeg skal nok få kigget lidt på dit problem her i weekenden, men jeg kan ikke love, at den bliver uden database.. Og hvis ikke, så bliver det ikke til Access, fordi den simpelthen er for langsom.
Alt hvad der kan trækkes på en 2000 server er velkommen. Jeg har installeret MySQL men fatter keines. Det starter fint op sammen med resten af systemet så det er vel ok ?
Men, husk.. linkbeskytelsen går ikke ud på at give enkelte IPér adgang, men på at lukke alle huller der kan give adgang til at linke til mine filer, og tdaugaards var et fint eksempel bare med den mangel atdu stadig kunne linke til filerne med en relativ sti. (altså fra anden server en lige min).
Såå, go 4 it. Jeg har besluttet at tage imod alle former for muligheder, bare det kommer til at virke ;)
EHm ja.. nu skriver jeg igen fordi eksperten har bedt mig godkende et svar.. men opgaven er jo ikke løst heeelt i nu. Den der server tjek der så folk kun kan downloade filer fra min server når de vælger et link fra sidderne på min server mangler.
Om det blir med/uden database skal jeg ik blande mig i, og om det er MySQL eller access er underordnet.
Jeg venter spændt så jeg kan få givet jer en masse point =)
hmmm.... det her er d vist gået lidt død.. glæder mig ellers til det kommer til at virke.. og til at slippe af med den der dumme besked om at eksperten venter på at jeg godkender et svar.. der er jo bare ik noget færdigt svar i nu.. :( øv øv
hmmmm thomas_regin og tdaugaard ... håber i snart for kigget færdigt på dette projekt der jo er startet for lang tid siden.. blier hele tiden mindet om at jeg skal uddele point og det glæder jeg mig da også til :)
Tjaah besluttede mig for at godkende da det her jo snart er et gammelt emne, må prøve at få nogle nye friske hoveder på sagen.. tak for den hjælp jeg har fået indtil nu :)
Synes godt om
Ny brugerNybegynder
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.