|
| Beskyt pdf fil mod download ? Fra : Magnus |
Dato : 08-07-01 16:23 |
|
Er der nogen der kender til en måde hvor besøgende kan downloade en pdf fil
uden at de kan se hvor den ligger.
Det er en fil som kun kan hentes fra en som er beskyttet med password men
når filen fx hentes ind i browseren så står adressen til hvor den ligger og
har man den så kan man snyde password beskyttelsen.
Kan man beskytte filen mod download eller undgå at den bliver åbnet i
browseren så adresselinien er synlig.
/Magnus
| |
Christian Estrup (08-07-2001)
| Kommentar Fra : Christian Estrup |
Dato : 08-07-01 22:53 |
|
Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti, evt.
også med et meget underligt filnavn - og derefter sende den til brugeren med
et 'dynamisk' filnavn. Fx:
**********
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open
arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
response.ContentType = "application/pdf"
response.Addheader "Content-Disposition", "inline; filename=svendotto.pdf"
'Dette er det 'filnavn', brugeren ser...
response.BinaryWrite oStream.Read
oStream.Close
set oStream = nothing
**********
- og inden du sender brugeren noget som helst, checker du så bare liiige, at
han også er logget ind :)
- Chr
"Magnus" <arnason@email.dk> wrote in message
news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
fil
> uden at de kan se hvor den ligger.
>
> Det er en fil som kun kan hentes fra en som er beskyttet med password men
> når filen fx hentes ind i browseren så står adressen til hvor den ligger
og
> har man den så kan man snyde password beskyttelsen.
> Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> browseren så adresselinien er synlig.
>
> /Magnus
>
>
| |
Christian Estrup (08-07-2001)
| Kommentar Fra : Christian Estrup |
Dato : 08-07-01 22:54 |
|
Whoops - 'arr =' er ikke nødvendigt, sorry...
"Christian Estrup" <cestrup@estrup-online.dk> wrote in message
news:ty427.926$6x5.111256@news000.worldonline.dk...
> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti,
evt.
> også med et meget underligt filnavn - og derefter sende den til brugeren
med
> et 'dynamisk' filnavn. Fx:
>
> **********
>
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
>
> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>
> response.ContentType = "application/pdf"
> response.Addheader "Content-Disposition", "inline;
filename=svendotto.pdf"
> 'Dette er det 'filnavn', brugeren ser...
> response.BinaryWrite oStream.Read
>
> oStream.Close
> set oStream = nothing
>
> **********
>
> - og inden du sender brugeren noget som helst, checker du så bare liiige,
at
> han også er logget ind :)
>
> - Chr
>
>
> "Magnus" <arnason@email.dk> wrote in message
> news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> > Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
> fil
> > uden at de kan se hvor den ligger.
> >
> > Det er en fil som kun kan hentes fra en som er beskyttet med password
men
> > når filen fx hentes ind i browseren så står adressen til hvor den ligger
> og
> > har man den så kan man snyde password beskyttelsen.
> > Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> > browseren så adresselinien er synlig.
> >
> > /Magnus
> >
> >
>
>
| |
Dcasso (10-07-2001)
| Kommentar Fra : Dcasso |
Dato : 10-07-01 18:31 |
|
Hej
Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
som følgende)
<%
Filnavn = RSTitler("DL")
Const adTypeBinary = 1
strFilePath = "D:\home\\" & Filnavn
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile strFilePath
Select Case lcase(Right(Filnavn, 3))
Case "gif"
Response.ContentType = "image/gif"
Case "jpg"
Response.ContentType = "image/jpeg"
Case "zip"
Response.ContentType = "application/x-tar"
Case "pdf"
Response.ContentType = "application/pdf"
end Select
Response.AddHeader "content-disposition","attachment; filename=" &
strFilePath
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
%>
Har du nogle gode ideer?
Mvh
Dcasso
On Sun, 8 Jul 2001 23:54:19 +0200, "Christian Estrup"
<cestrup@estrup-online.dk> wrote:
>Whoops - 'arr =' er ikke nødvendigt, sorry...
>
>"Christian Estrup" <cestrup@estrup-online.dk> wrote in message
>news:ty427.926$6x5.111256@news000.worldonline.dk...
>> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti,
>evt.
>> også med et meget underligt filnavn - og derefter sende den til brugeren
>med
>> et 'dynamisk' filnavn. Fx:
>>
>> **********
>>
>> set oStream = server.createobject("ADODB.Stream")
>> oStream.Type = 1 'adTypeBinary
>> oStream.Open
>>
>> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>>
>> response.ContentType = "application/pdf"
>> response.Addheader "Content-Disposition", "inline;
>filename=svendotto.pdf"
>> 'Dette er det 'filnavn', brugeren ser...
>> response.BinaryWrite oStream.Read
>>
>> oStream.Close
>> set oStream = nothing
>>
>> **********
>>
>> - og inden du sender brugeren noget som helst, checker du så bare liiige,
>at
>> han også er logget ind :)
>>
>> - Chr
>>
>>
>> "Magnus" <arnason@email.dk> wrote in message
>> news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
>> > Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
>> fil
>> > uden at de kan se hvor den ligger.
>> >
>> > Det er en fil som kun kan hentes fra en som er beskyttet med password
>men
>> > når filen fx hentes ind i browseren så står adressen til hvor den ligger
>> og
>> > har man den så kan man snyde password beskyttelsen.
>> > Kan man beskytte filen mod download eller undgå at den bliver åbnet i
>> > browseren så adresselinien er synlig.
>> >
>> > /Magnus
>> >
>> >
>>
>>
>
| |
Jesper Stocholm (10-07-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 10-07-01 19:11 |
|
Dcasso <dcasso@usa.net> wrote in
news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
> Hej
>
> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>
> Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
> som følgende)
>
> <%
>
> Filnavn = RSTitler("DL")
>
> Const adTypeBinary = 1
>
> strFilePath = "D:\home\\" & Filnavn
>
> Set objStream = Server.CreateObject("ADODB.Stream")
>
> objStream.Type = adTypeBinary
> objStream.Open
> objStream.LoadFromFile strFilePath
>
> Select Case lcase(Right(Filnavn, 3))
> Case "gif"
> Response.ContentType = "image/gif"
> Case "jpg"
> Response.ContentType = "image/jpeg"
> Case "zip"
> Response.ContentType = "application/x-tar"
> Case "pdf"
> Response.ContentType = "application/pdf"
> end Select
men det er jo "klart". Din browser får jo at vide, at det er en .PDF-fil,
som den er ved at hente - og derfor aktiveres den plug-in, der er
installeret i din browser.
Hvis du i stedet skriver
response.contenttype = "application/octet-stream
skulle det virke.
Jeg har anvendt dette på http://stocholm.dk/pmp/downloads/download.asp?
file=main.pdf , hvor du kan se det virke. Jeg har testet det med IE6,
NN4.7,NN6.1 og Opera 5.11 og siden opfører sig som det ønskede i alle disse
browsere.
Dokumentet fylder +700Kb (i tilfælde du vil hente hele dokumentet)
--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp
- Jesper Stocholm - http://stocholm.dk
| |
Dcasso (10-07-2001)
| Kommentar Fra : Dcasso |
Dato : 10-07-01 20:14 |
|
On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
<spam@stocholm.dk> wrote:
>Dcasso <dcasso@usa.net> wrote in
>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>
>> Hej
>>
>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>
>> Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
>> som følgende)
>>
>> <%
>>
>> Filnavn = RSTitler("DL")
>>
>> Const adTypeBinary = 1
>>
>> strFilePath = "D:\home\\" & Filnavn
>>
>> Set objStream = Server.CreateObject("ADODB.Stream")
>>
>> objStream.Type = adTypeBinary
>> objStream.Open
>> objStream.LoadFromFile strFilePath
>>
>> Select Case lcase(Right(Filnavn, 3))
>> Case "gif"
>> Response.ContentType = "image/gif"
>> Case "jpg"
>> Response.ContentType = "image/jpeg"
>> Case "zip"
>> Response.ContentType = "application/x-tar"
>> Case "pdf"
>> Response.ContentType = "application/pdf"
>> end Select
>
>men det er jo "klart". Din browser får jo at vide, at det er en .PDF-fil,
>som den er ved at hente - og derfor aktiveres den plug-in, der er
>installeret i din browser.
>
>Hvis du i stedet skriver
>
>response.contenttype = "application/octet-stream
>
>skulle det virke.
Takker!
Det virkede
Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
så et mere passende navn i save as - boksen.
| |
Jesper Stocholm (10-07-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 10-07-01 20:13 |
|
Dcasso <dcasso@usa.net> wrote in
news:otkmkt0i1ifggk476vb2l2qvkd1tc3b0ji@4ax.com:
> On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
> <spam@stocholm.dk> wrote:
>>Dcasso <dcasso@usa.net> wrote in
>>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>>> Hej
>>>
>>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>>
>>> Case "pdf"
>>> Response.ContentType = "application/pdf" end Select
>>
[snip]
>>
>>Hvis du i stedet skriver
>>
>>response.contenttype = "application/octet-stream
>>
>>skulle det virke.
>
> Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
> så et mere passende navn i save as - boksen.
>
I mine browsere beder den da om at gemme med det rigtige navn. Har du husket
linien
response.Addheader "Content-Disposition", "inline;
filename=somefilenamedotpdf"
?
--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp
- Jesper Stocholm - http://stocholm.dk
| |
Dcasso (10-07-2001)
| Kommentar Fra : Dcasso |
Dato : 10-07-01 22:09 |
|
Ja, men den skriver filnavnet på den asp-fil hvori jeg udfører koden
til at hente pdf-filen og altså ikke pdf-filens navn.
On Tue, 10 Jul 2001 19:12:51 +0000 (UTC), Jesper Stocholm
<spam@stocholm.dk> wrote:
>Dcasso <dcasso@usa.net> wrote in
>news:otkmkt0i1ifggk476vb2l2qvkd1tc3b0ji@4ax.com:
>
>> On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
>> <spam@stocholm.dk> wrote:
>>>Dcasso <dcasso@usa.net> wrote in
>>>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>>>> Hej
>>>>
>>>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>>>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>>>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>>>
>>>> Case "pdf"
>>>> Response.ContentType = "application/pdf" end Select
>>>
>[snip]
>>>
>>>Hvis du i stedet skriver
>>>
>>>response.contenttype = "application/octet-stream
>>>
>>>skulle det virke.
>>
>> Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
>> så et mere passende navn i save as - boksen.
>>
>
>I mine browsere beder den da om at gemme med det rigtige navn. Har du husket
>linien
>
>response.Addheader "Content-Disposition", "inline;
>filename=somefilenamedotpdf"
>
>?
| |
Jesper Stocholm (10-07-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 10-07-01 22:05 |
|
Dcasso <dcasso@usa.net> wrote in
news:h2rmktoo6d0ql38ufo2hcd2p9k6mt269p5@4ax.com:
> Ja, men den skriver filnavnet på den asp-fil hvori jeg udfører koden
> til at hente pdf-filen og altså ikke pdf-filens navn.
>
den kode jeg bruger er denne:
********************************************************************
file = request.querystring("file")
filearray = split(file,".")
extension = filearray(1)
SELECT case lcase(extension)
CASE "ps"
Response.ContentType = "application/postscript"
CASE "eps"
Response.ContentType = "application/postscript"
CASE "zip"
Response.ContentType = "application/x-zip-compressed"
CASE ELSE
Response.ContentType = "application/octet-stream"
END SELECT
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open
oStream.LoadFromFile (server.mappath(file))
Response.AddHeader "content-disposition", "attachment; filename=" & file
Response.BinaryWrite oStream.Read
oStream.Close
set oStream = nothing
********************************************************************
og det ser da ud til at virke korrekt. Har du prøvet at hente filen fra min
hjemmeside ?
--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp
- Jesper Stocholm - http://stocholm.dk
| |
Jesper Stocholm (09-07-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 09-07-01 08:05 |
|
Christian Estrup wrote in dk.edb.internet.webdesign.serverside.asp:
> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti, evt.
> også med et meget underligt filnavn - og derefter sende den til brugeren med
> et 'dynamisk' filnavn. Fx:
>
> **********
>
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
>
> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>
> response.ContentType = "application/pdf"
> response.Addheader "Content-Disposition", "inline; filename=svendotto.pdf"
> 'Dette er det 'filnavn', brugeren ser...
> response.BinaryWrite oStream.Read
>
> oStream.Close
> set oStream = nothing
>
> **********
>
desværre ser det ud til, at MSIE har en tendens til at kigge på indholdet af
filen - og ikke kun content-type erklæringen - hvilket betyder, at jeg ikke
altid kan fremtvinge en Save/As-dialog - fx ved download af .txt-filer .
Findes der en content-type, der /altid/ får MSIE til at spørge om filen skal
gemmes ?
Jesper Stocholm
http://stocholm.dk
--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering
| |
Kim Jensen (09-07-2001)
| Kommentar Fra : Kim Jensen |
Dato : 09-07-01 14:12 |
|
Findes der en content-type, der /altid/ får MSIE til at spørge om filen skal
> gemmes ?
Har du prøvet med "application/download" - jeg mener den er der til samme
formål, men er ikke 100% sikker.
mvh
Kim Jensen
| |
Thygesen (08-07-2001)
| Kommentar Fra : Thygesen |
Dato : 08-07-01 21:48 |
|
"Magnus" <arnason@email.dk> skrev i en meddelelse
news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
fil
> uden at de kan se hvor den ligger.
>
> Det er en fil som kun kan hentes fra en som er beskyttet med password men
> når filen fx hentes ind i browseren så står adressen til hvor den ligger
og
> har man den så kan man snyde password beskyttelsen.
> Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> browseren så adresselinien er synlig.
Du kan bruge følgende kode:
pathname = "d:\http\fil.pdf"
Server.ScriptTimeout = 1200
Const adTypeBinary = 1
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile pathname
Response.ContentType = "application/x-zip-compressed"
Response.AddHeader "content-disposition", "attachment; filename=" &
mid(pathname,InStrRev(pathname,"\")+1)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Mvh. Christoffer Thygesen
e-mail: cht@cht.dk
homepage: http://cht.dk
| |
|
|