Avatar billede roadrunr Nybegynder
18. februar 2002 - 17:24 Der er 6 kommentarer og
2 løsninger

Validering af variabel i SQL

jeg har en dynamisk SQL-sætning som følgende, hvor brugeren kan indtaste en "søgestreng" i et inputfelt:
-----------
strVariabel = Request.Form("inputfelt")

SELECT * FROM [Table1] WHERE [Table1].[Felt1] = '" & strVariabel & "';

Hvordan undgår jeg vha. validering at "strVariabel" indeholder tegn, som kan misbruges i SQL'en? Hvilke tegn i en variabel skal man fjerne?

Jeg har pt. en liste og "onde" tegn (kombinationer):
@,#,',"",-,--,%

Findes der flere? Jeg er ikke en "haj" til SQL, så jeg ved ikke lige hvilke ting der kan være "farlige".

Kan man lave noget opsætning op SQLserveren(MS), som gør at den afviser specielle tegn i en select-sætning el.lign?

Avatar billede bernhof Nybegynder
18. februar 2002 - 18:39 #1
er med på en lytter! :)
/Mikbj
Avatar billede cdygaard Nybegynder
18. februar 2002 - 20:03 #2
ditto! cdygaard
Avatar billede medions Nybegynder
18. februar 2002 - 21:35 #3
så skriver du

donevariabel(Replace(strVariabel,"" & "@", "")

-altså hvis der findes et @ i strengen bliver den erstattet med "" <- altså ingenting... -sådan skal du bare gøre hele vejen igennem...

//>Rune
Avatar billede bernhof Nybegynder
18. februar 2002 - 21:52 #4
arh .. det kan vist ikke være en ordentlig metode at gøre det på!

han beder om at få escapet de "ulovlige" tegn .. ikke slettet!! hvis de er en del af en besked, kan man risikere at ødelægge den fuldstændig!
Avatar billede roadrunr Nybegynder
19. februar 2002 - 10:19 #5
Det er også lige så meget at, jeg gerne vil have en "liste" over alle disse "tegn" som jeg skal undgå!
Avatar billede bernhof Nybegynder
04. marts 2002 - 21:15 #6
Jeg har ikke listen over "onde" tegn, men jeg ved at du kan escape ' vha. flg:

strVariabel = Replace(strVariabel,"'","''")

og alle andre "onde" tegn således (her fx "%"):

strVariabel = Replace(strVariabel,"%","[%]")

.. der skulle ikke være brug for andre procedurer, da både @, # osv. ikke er farlige så snart de kommer ind imellem ' og '...

Håber svaret kan bruges! :)

/Mikbj
Avatar billede roadrunr Nybegynder
05. marts 2002 - 08:20 #7
hvad med "--)" afslutter det ikke en kommentar i SQL?... kan det blive et problem?
Avatar billede medions Nybegynder
30. august 2002 - 07:47 #8
Thx 4 Poinz

//>Rune
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