Avatar billede lazeric Nybegynder
06. september 2006 - 14:41 Der er 15 kommentarer og
1 løsning

Er det muligt at rippe ASP sider?

Er der nogen der ved om det er muligt at rippe ASP sider?
Jeg vil gerne vide om det er muligt for nogen at downloade mine ASP sider og på den måde gennemgå min kode?

Hvis ja, så vil jeg gerne vide hvordan man gør så jeg kan se om jeg kan forebygge det.

På forhånd tak!
Avatar billede madeindk Nybegynder
06. september 2006 - 14:46 #1
Det er ikke muligt at rippe ASP kode, da det er et serverside sprog, det vil sige at koden bliver afviklet på serveren og ikke hos klienten.

Har du ikke koden liggende hos en udbyder eller lign.?
Avatar billede fennec Nybegynder
06. september 2006 - 14:51 #2
Nej det er ikke muligt at hente ASP filer.

Den eneste måde, de kan få dine ASP filer, er ved at hacke serveren, og så den vej få adgang til alle filer derpå.
Avatar billede lazeric Nybegynder
06. september 2006 - 15:24 #3
Ok, jamen så må de have hacket sig ind igennem gæstebogen så :-P Men den kan da ihvertfalde sikres relativt nemt.
Jeg blev bare helt i tvivl om man kunne downloade .asp filer vha et program :-)
Avatar billede fennec Nybegynder
06. september 2006 - 16:20 #4
Har du sikret dine indtastninger mod ' tegnet? Ellers kan man nemt hacke din databse.
Avatar billede madeindk Nybegynder
06. september 2006 - 17:49 #5
Ok - tak for point
Avatar billede lazeric Nybegynder
07. september 2006 - 22:23 #6
Nej det har jeg ikke!
Kan du give mig koden til det? :-)
Avatar billede lazeric Nybegynder
07. september 2006 - 22:26 #7
Så kan du selvfølgelig smide det som et svar så jeg kan give dig nogle point :-)
Avatar billede madeindk Nybegynder
07. september 2006 - 22:37 #8
Det er sådan set ret enkelt.

(Replace(Request.Form("feltnavn"), "'", "''")
Avatar billede lazeric Nybegynder
07. september 2006 - 23:10 #9
tak :-)
Avatar billede fennec Nybegynder
08. september 2006 - 09:51 #10
.. Og en forklaring på ' problematikken, hvis du ikke kender det.

Forstil dig et login tjek:
user = request.form("user")
pass = request.form("pass")
set rs = conn.execute("select * from userTabel where name='"& user &"' and pass='"& pass &"'")

Normalt vil de give en sql ala:
select * from userTabel where name='brugernavn' and pass='password'

Men hvis man indtaster ' or '1'='1 som password giver det en sql som er:
select * from userTabel where name='' and pass='' or '1'='1'

Denne kørsel vil returnere ALLE rækker, og derfor logge brugeren ind.

I MS-SQL er det endnu være da man kan skrive '; shutdown; hvilket resultere i at DB-serveren lukker ned. Eller '; drop table xxx; hvilket sletter den angivet tabel. Disse sidste komandoer kunne sagtens have været skrevet i et note felt, og aktiveret gennem en insert.

Ved at udskifte ' til to bliver det før omtalte login til:
select * from userTabel where name='' and pass=''' or ''1''=''1'

Og der opfatter DB'en '' som et escapetegn (lige som ASP gør med ""), og ser det som et enkelt, hvilket betyder at pass bliver sammenlignet med "' or '1'='1", hvilket der helst ikke skulle være nogen der har som password.

Denne problematik er også kendt som SQL-injections.
Avatar billede lazeric Nybegynder
08. september 2006 - 10:06 #11
kanon med den forklaring og tak :-)
Det er dog ikke helt med på hvordan jeg skal gøre det samtidig med at jeg sikrer imod HTML?
Noget ala:

rs("description") = Server.HTMLencode(Request.Form("description") & replace(Request.Form("description"),"'","^"))

men hvad bruger man istedet for & så den ikke skriver det to gange? :-)
Avatar billede fennec Nybegynder
08. september 2006 - 10:20 #12
Det skal du kun tænke på ved udskriften. Indsæt altid de orginale indtastninger i databasen. Når du så udskriver sender du det igennem diverse funktioner.

Bruger du:
rs("kol1") = "dfvkj"
rs("kol2") = 123
rs.update

Til at opdatere/indsætte i din database, skal du ikke sikre noget som helst (heller ikke ' tegnet). Bare indsæt description som den er:
rs("description") = Request.Form("description")

Når du udskriver sender du det igennem HTMLencode og replacen:
response.write replace(server.htmlEncode(rs("description")),vbcrlf,"<br>")
Avatar billede lazeric Nybegynder
08. september 2006 - 10:46 #13
Nå, det forstår jeg ikke helt :-)
Jeg kan forstå med HMTL, men hvorfor skal man ikke sikre ' tegnet?
Avatar billede fennec Nybegynder
08. september 2006 - 10:57 #14
rs.update generere selv SQL'en og sender til databasen, og den sørger for at formatere tingene rigtigt (f.eks datoer og ' tegn), så der ikke opstår fejl ved indsættelse. Laver du selv SQL'en, skal du selv lave alle disse tjek.
Avatar billede fennec Nybegynder
08. september 2006 - 11:01 #15
Nogen kan bedst lide rs.update metoden, fordi de så slipper for at skulle lave alle disse tjek, men jeg føler jeg mister kontrollen, hvorfor jeg fortrækker at lave mine SQL sætninger selv. Begge metoder har deres fordele og ulemper.
Avatar billede lazeric Nybegynder
08. september 2006 - 11:32 #16
Ok. Jamen tak for hjælpen :)
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
Kurser inden for grundlæggende programmering

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