Hvis du mener kilderne til selve ASP-scriptene. Det bliver nok list svært, da de jo udføres på serveren med det samme. Hvis filer ikke har efternavnet *.asp, vil de ikke blive eksekveret, så du kunne evt. lægge en kopi til download eller i nogle *.html dokumenter.
I teorien ville det også være muligt at lave et script, der kunne hente fra de øvrige asp-filer og vise indholdet som tekst, hvis du vil slippe for at lave kopier, men det bliver straks langt mere kompliceret.
Hvis du har mange filer, du ønsker at lave kopier af, kan du evt. bruge en dos-kommando inden opload i retning af
Ja, HTMLencode var netop en af mulighederne jeg havde i tankerne i det ovenstående. Det vil dog kræve, at du indsætter et stykke kode, der henviser til den fil, du ønsker at vise kildekoden til. Hvis du eks. laver et link på følgende måde:
vis.asp?fil=script.asp
kan du opbygge vis.asp som noget i retning af:
<%
Set filesys = CreateObject("Scripting.FileSystemObject") Set txtfile = _ filesys.OpenTextFile("" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "\" & request.querystring("fil") & "",1, 0)
Vær opmærksom på, at filen, der ønskes vist i dette tilfælde skal ligge i roden. Dette kan dog blot ændres i selve linket eller i vis.asp, hvis filen ligger i en undermappe.
Her er en funktion (sub), som gør noget lign. som overstående svar, men checker også samtidig om filen eksistere, så brugeren i stedet får en anden besked (samt at man stadig får ens eget design frem) end den standard i serveren:
<% Sub VisSource(sFilnavn) Set fsObj = CreateObject("Scripting.FileSystemObject") If fsObj.FileExists(Server.Mappath(sFilnavn)) Then Set fsFile = fsObj.OpenTextFile(Server.Mappath(sFilnavn), 1, False) Response.Write Replace("" & Server.HTMLEncode("" & fsFile.ReadAll), vbCrLf, "<BR>" & vbCrLf) fsFile.Close Set fsFile = Nothing Else Response.Write "Filen blev ikke fundet!<BR>" & vbCrLf End If Set fsObj = Nothing End Sub %>
For at få den vist, skriver du blot: <% VisSource("fil.asp") %>
Mens man nu var igang med at lave ekstra funktioner til source-viseren, kunne man jo også få den til at beskytte indholdet af bestemte filer, indeholdende "private"/hemlige oplysninger (f.eks. passwords til databaser og lign.):
<% Sub VisSource(sFilnavn) Set fsObj = CreateObject("Scripting.FileSystemObject")
sCheckFil = fsObj.GetFileName(Server.Mappath(sFilnavn)) If sCheckFil <> "hemlig1.asp" AND sCheckFil <> "hemlig2.asp" Then If fsObj.FileExists(Server.Mappath(sFilnavn)) Then Set fsFile = fsObj.OpenTextFile(Server.Mappath(sFilnavn), 1, False) Response.Write Replace("" & Server.HTMLEncode("" & fsFile.ReadAll), vbCrLf, "<BR>" & vbCrLf) fsFile.Close Set fsFile = Nothing Else
Response.Write "Filen kunne ikke indlæses (blev ikke fundet)!<BR>" & vbCrLf End If Else Response.Write "Sourcen er desværre beskyttet!<BR>" & vbCrLf End If Set fsObj = Nothing End Sub %>
Hejsa Allesammen, må sige at jeg bedst kan lide netsrac´s forslag, men de andre er nu også meget gode.
Manke Tak for hjælpen.
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.