Avatar billede Claus Mester
16. juli 2007 - 06:27 Der er 7 kommentarer og
1 løsning

Update med betingelse og to variabler

Klog blir man ikke, hvis man ikke spørg :)

Følgende sql sætning har jeg vendt og drejet, uden det ønskede resultat, blot andre fejlmedd. Så nu tyr jeg til hjælp igen:

__ kode __

KontaktID = Request.Querystring("Id")
KontaktFornavn = Request.Form("Fornavn")

strSQL = "Update personer Set Fornavn = " & KontaktFornavn & " Where Id = " & KontaktID & "

__ kode slut__

Modtager følgende fejl:

__ fejl __

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/one/asptut/redigeret.asp, line 33, column 91
strSQL = "Update personer Set Fornavn = " & KontaktFornavn & " Where Id = " & KontaktID & "

__ fejl slut __

nicolaus
Avatar billede erikjacobsen Ekspert
16. juli 2007 - 07:58 #1
strSQL = "Update personer Set Fornavn = " & KontaktFornavn & " Where Id = " & KontaktID

Pas på med sql-injection (google) - læg det ikke på nettet, før du har helt styr på det!!
Avatar billede Claus Mester
16. juli 2007 - 08:18 #2
Tak for assistancen :)
Mht. sql-injection, er jeg meget glad for at du henleder min opmærksomhed på det. Som nybegynder er man sjældent særlig bevidst om eller vidende om sikkerhedsproblematikkerne. Så det skal jeg vist lige have læst op på. Men jeg forstår ikke helt, hvordan det kan undgås, da enhver sql sætning vel potentielt kan udnyttes?
Avatar billede Claus Mester
16. juli 2007 - 08:23 #3
Læst lidt mere ... såvidt jeg kan forstå, er det kun hvis derer fejl i sql strengen, er det korrekt?
Avatar billede erikjacobsen Ekspert
16. juli 2007 - 08:25 #4
Nej, det er når du ukritisk tager input fra brugeren, fx.: Request.Querystring("Id")
og bruger det uden at tjekke for om det i dette tilfælde faktisk er et tal, og intet andet. Dermed kan en hacker lave om i din sql-sætning, og læse, ændre, slette i din database. Læs mere om det, inden du lægger det på nettet.
Avatar billede Claus Mester
16. juli 2007 - 08:38 #5
Udfra det jeg har læst indtil videre, kan jeg ikke just gennemskue, hvordan man så undgår den form for hacking .. ikke helt i hvertfald, bortset fra at kombinere brugerinput med beskyttet input, fra fx statiske variabler. Men som sagt er jeg slet ikke klar på hvordan man beskytter sig. Så jeg opretter nok et indlæg omkring forholdsregler og forsvar. Håber du evt. vil smide et svar eller to - du virker til at have styr på det.
Avatar billede erikjacobsen Ekspert
16. juli 2007 - 08:47 #6
Jeg samler slet ikke på point, tak. I det konkrete tilfælde skal du teste at strengen du får fra Request.Querystring("Id") er et tal. Men der er vel ingen, der påstår at det skulle være nemt, så vær forberedt på at der lang vej fra at smide lidt kode sammen, der "virker", til en rigtig og sikker web-applikation.
Avatar billede Claus Mester
16. juli 2007 - 13:45 #7
Jeg vil samle mig et stort forråd af tålmodighed, og påbegynde den lange vandring :)
Avatar billede Claus Mester
16. juli 2007 - 13:46 #8
.
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