Avatar billede wzarlon Nybegynder
16. februar 2001 - 14:58 Der er 7 kommentarer og
3 løsninger

sessions

Hmmm, fandt lige ud af at man via indtastning med:
\' or username like \'%

i username og password kan man komme ind i det beskyttet område på min side...

Hvordan undgåes dette?
Avatar billede sesam Nybegynder
16. februar 2001 - 15:00 #1
<% If Session(\"UserName\") = \"\" Then
Response.Redirect \"Register.asp\"
End If
%>
Avatar billede sesam Nybegynder
16. februar 2001 - 15:01 #2
Du skal selvfølgelig tilpasse redirect
koden placeres i toppen af den side hvor det kræver at man er logget på
Avatar billede dudal Nybegynder
16. februar 2001 - 15:03 #3
Det er altid en MEGET god idé at filtrere \' fra i et input fra en formular.

Altså RELACE(input,\"\'\",\"\")

På denne måde vil ovenstående \"hack\" ikke være muligt.

/Jesper
Avatar billede gandalfthewhite Nybegynder
16. februar 2001 - 15:04 #4
Søg for at dette ikke slipper igennem din asp side. Problemmet er at du tager en user indtastet værdi og sætter den direkte ind i din sql sætning. Derved kommer syntaksen til at passe.
Du kunne f.eks. sørge for at vildcards ikk ekan komme igennem.
Replace(str, \"%\", \"\") osv.
Avatar billede wzarlon Nybegynder
16. februar 2001 - 15:12 #5
hvor skal jeg lave den replace??

Jeg har prøvet at sætte den ind i min input og det hjalp!
<input REPLACE(input,\"\'\",\"\") type=\"text\" name=\"login\" value=\"<%= Request.Cookies(\"Login\")(\"Username\")%>
Avatar billede wzarlon Nybegynder
16. februar 2001 - 15:13 #6
kan du lige forklare det igen gandalfthewhite?? vil godt lige forstå hvad problemet er
Avatar billede dudal Nybegynder
16. februar 2001 - 15:16 #7
PÅ den side hvor du henter informationerne fra formen skal du bruge det..

Eks.

brugernavn = REPLACE(Request.QueryString(\"brugernavn\"),\"\'\",\"\")
brugernavn = REPLACE(brugernavn,\"%\",\"\")

password = REPLACE(Request.QueryString(\"password\"),\"\'\",\"\")
password = REPLACE(password,\"%\",\"\")

/Jesper
Avatar billede wzarlon Nybegynder
16. februar 2001 - 15:19 #8
hmmm, k..henter fra db her.   
strQ = \"SELECT * FROM Adgangskoder WHERE (Password=\'\" & Request.Form(\"pw\") & \"\')\" & _
                              \" AND (Username=\'\" & Request.Form(\"login\") & \"\');\"
Avatar billede gandalfthewhite Nybegynder
16. februar 2001 - 15:19 #9
Brug chr(34) istedet for \'.
REPLACE(input, chr(34), \"\") \'ellers er det chr(39)
Avatar billede draken Nybegynder
20. februar 2001 - 16:47 #10
Hvad med at splitte sql-sætningen op?
Forslag:

\'Funktion der konvertere dine request.form
\'****************************************************
FUNCTION Konverter( String )
    String = Replace( String, \"\'\", \"\" )
    String = Replace( String, \"%\",\"\" )
END FUNCTION

\'Her hentes data fra formen, de sendes til Konverter
\'og de sikrede data lægges i Variabler!
\'****************************************************
strPW = Konverter(Request.Form(\"pw\"))
strLogin = Konverter(Request.Form(\"login\"))

\'Derefter kan du lave din sql-string
\'****************************************************
strQ = \"SELECT * FROM Adgangskoder\" & _
      \" WHERE (Password=\'\" & strPW & \"\')\" & _
            \" AND (Username=\'\" & strLogin & \"\');\"
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