Avatar billede bojohansen Nybegynder
19. april 2001 - 16:12 Der er 13 kommentarer og
1 løsning

Er denne sikker nok???

<%
Dim YourId, Password, FejlYourId, FejlPassword, FejlYourIdNotInDb, FejlForkertPassword
YourId = Request.Querystring(\"YourId\")
Password = Request.Querystring(\"Password\")
FejlYourId = (\"0\")
FejlPassword = (\"0\")
FejlYourIdNotInDb = (\"0\")
FejlForkertPassword = (\"0\")
%>

<%
  if instr(YourId ,\"\'\") Or _
  instr(YourId ,\"&\") Or _
  instr(YourId ,\",\") Or _
  instr(YourId ,\";\") Or _
  instr(YourId ,\"_\") Or _
  instr(YourId ,\"=\") Or _
  instr(YourId ,\" \") Or _
  instr(lcase(YourId) ,\"select \") Or _
  instr(lcase(YourId) ,\" where \") Or _
  instr(lcase(YourId) ,\" or \") Or _
  instr(lcase(YourId) ,\" by \") Or _
  instr(lcase(YourId) ,\" insert \") Or _
  instr(lcase(YourId) ,\" update \") Or _
  instr(lcase(YourId) ,\" and \") Then
  FejlYourId = FejYourId + 1
  End If
 
  if instr(Password ,\"\'\") Or _
  instr(Password ,\"&\") Or _
  instr(Password ,\",\") Or _
  instr(Password ,\";\") Or _
  instr(Password ,\"_\") Or _
  instr(Password ,\"=\") Or _
  instr(Password ,\" \") Or _
  instr(lcase(Password) ,\"select \") Or _
  instr(lcase(Password) ,\" where \") Or _
  instr(lcase(Password) ,\" or \") Or _
  instr(lcase(Password) ,\" by \") Or _
  instr(lcase(Password) ,\" insert \") Or _
  instr(lcase(Password) ,\" update \") Or _
  instr(lcase(Password) ,\" and \") Then
  FejlPassword = FejPassword + 1
  End If
 
  If FejlYourId > 0 Or FejlPassword > 0 Then
  Response.Redirect \"login.asp?FejlYourId=\" & FejlYourId & _
  \"&FejlPassword=\" & FejlPassword
  End If
 
  Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\\home\\formordk\\db\\member.mdb\"
  Set RS = conn.Execute (\"SELECT MedlemsIdNr, MedlemsPassword From MedlemsInfo WHERE MedlemsIdNr =\'\" & YourId & \"\'\")
 
  If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  Else
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  End If
 
  If FejlYourIdNotInDb > 0 Or FejlForkertPassword > 0 Then
  Response.Redirect \"login.asp?FejlYourIdNotInDb=\" & FejlYourIdNotInDb & _
  \"&FejlForkertPassword=\" & FejlForkertPassword
  Else
  Response.Cookies(\"Memberacces\")(\"YourId\") = \"\" & YourId & \"\"
  Response.Cookies(\"Memberacces\")(\"Password\") = \"\" & Password & \"\"
  Response.Cookies(\"Memberacces\").Expires = Date+365
  Response.Redirect \"enellerandenside.asp\" 
  End If
End If
%>

Eller burde jeg tjekke noget mere for at sikre at folk ikke kan snyde med den??
Avatar billede tdaugaard Nybegynder
19. april 2001 - 16:16 #1
Du behøver altså kun checke for \' ..

Replace(streng, \"\'\", \"\'\'\")

Så vil man ikke kunne fucke dit SQL .. af hvad jeg har lært ..
Avatar billede bojohansen Nybegynder
19. april 2001 - 16:16 #2
Skulle jeg på en eller anden måde lave en skjult kode i cookien i stedet for at lægge folks ID nummer og password direkte ind i den????
Avatar billede nute Nybegynder
19. april 2001 - 16:16 #3
hvorfor legger du ikke dine tegn inn i en array ??????
Avatar billede bojohansen Nybegynder
19. april 2001 - 16:18 #4
---> tdaugaard
Ok, men skidt put nu er det lavet så det i hvertfald er umuligt at prøve at fuske :-)
Avatar billede tdaugaard Nybegynder
19. april 2001 - 16:19 #5
bojohansen:> du kan gemme user/pass i en DB og så gemme ID\'et på den post der indeholder deres user/pass i en cookie. Det er mere sikkert på den måde..
Avatar billede bojohansen Nybegynder
19. april 2001 - 16:19 #6
--->nute
Jeg er ret ny i asp og bruger bare her i starten hvad jeg kender til.
Skulle der være noget sikkerheds mæssigt bedre i at bruge array\'s
Avatar billede tdaugaard Nybegynder
19. april 2001 - 16:21 #7
bojohansen:> der er ingen sikkerhedsmæssig fordel ved at bruge et array.
Avatar billede tdaugaard Nybegynder
19. april 2001 - 16:23 #8
*G* oki :-)

Men jeg vil sige at du har gjort det rimeligt sikkert så :-)
Avatar billede nute Nybegynder
19. april 2001 - 16:27 #9
jepp...en array vil ikke hjelpe på noe sikkerhet, men det er enklere å overskue,....
Avatar billede bojohansen Nybegynder
19. april 2001 - 16:30 #10
--->> tdaugaard

Ok, jeg havde nemlig tænkt på at lave en random selected talrække som gemmes i db (15 til 20 tal) og så derved tjekke om den passer med cookien.
Den tygger jeg lige lidt på.
Avatar billede bojohansen Nybegynder
19. april 2001 - 17:02 #11
--> tdaugaard

Mener du så dette ville være bedre???

Man kan ikke direkte læse pass og id i cookien, men man vil selvfølgelig kunne kopiere cookien og så gå ind på kontoen og ændre password da dette bliver en mulighed i systemet, men det kan jo kun lade sig gøre ved at man finder personen\'s IP nummer og hacker sig direkte ind på personens comp. og kopiere cookien.... eller hvad??

<%
Dim YourId, Password, FejlYourId, FejlPassword, FejlYourIdNotInDb, FejlForkertPassword
YourId = Request.Querystring(\"YourId\")
Password = Request.Querystring(\"Password\")
FejlYourId = (\"0\")
FejlPassword = (\"0\")
FejlYourIdNotInDb = (\"0\")
FejlForkertPassword = (\"0\")
%>

<%
  if instr(YourId ,\"\'\") Or _
  instr(YourId ,\"&\") Or _
  instr(YourId ,\",\") Or _
  instr(YourId ,\";\") Or _
  instr(YourId ,\"_\") Or _
  instr(YourId ,\"=\") Or _
  instr(YourId ,\" \") Or _
  instr(lcase(YourId) ,\"select \") Or _
  instr(lcase(YourId) ,\" where \") Or _
  instr(lcase(YourId) ,\" or \") Or _
  instr(lcase(YourId) ,\" by \") Or _
  instr(lcase(YourId) ,\" insert \") Or _
  instr(lcase(YourId) ,\" update \") Or _
  instr(lcase(YourId) ,\" and \") Then
  FejlYourId = FejYourId + 1
  End If
 
  if instr(Password ,\"\'\") Or _
  instr(Password ,\"&\") Or _
  instr(Password ,\",\") Or _
  instr(Password ,\";\") Or _
  instr(Password ,\"_\") Or _
  instr(Password ,\"=\") Or _
  instr(Password ,\" \") Or _
  instr(lcase(Password) ,\"select \") Or _
  instr(lcase(Password) ,\" where \") Or _
  instr(lcase(Password) ,\" or \") Or _
  instr(lcase(Password) ,\" by \") Or _
  instr(lcase(Password) ,\" insert \") Or _
  instr(lcase(Password) ,\" update \") Or _
  instr(lcase(Password) ,\" and \") Then
  FejlPassword = FejPassword + 1
  End If
 
  If FejlYourId > 0 Or FejlPassword > 0 Then
  Response.Redirect \"login.asp?FejlYourId=\" & FejlYourId & _
  \"&FejlPassword=\" & FejlPassword
  End If
 
  Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\\home\\formordk\\db\\member.mdb\"
  Set RS = conn.Execute (\"SELECT MedlemsIdNr, MedlemsPassword From MedlemsInfo WHERE MedlemsIdNr =\'\" & YourId & \"\'\")
 
  If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  Else
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  End If
 
  If FejlYourIdNotInDb > 0 Or FejlForkertPassword > 0 Then
  Response.Redirect \"login.asp?FejlYourIdNotInDb=\" & FejlYourIdNotInDb & _
  \"&FejlForkertPassword=\" & FejlForkertPassword
  Else
 
  Function MakePassword(intAntaltegn)
  For x = 1 To intAntalTegn
    Randomize
    intChooser = Int(Rnd * 2) + 1
    Select Case intChooser
    Case 1
      intWildChar = Int(Rnd * 57) + 65
      If intWildChar => 91 And intWildChar <= 96 Then
        intWildChar = intWildChar + 8
      End If
      strPassword = strPassword & Chr(intWildChar)
    Case Else
      intWildChar = Int(Rnd * 9) + 1
      strPassword = strPassword & intWildChar
    End Select
  Next
  MakePassword = strPassword
End Function
CookieId = MakePassword(20)

Set RS1 = conn.Execute (\"UPDATE MedlemsInfo SET CookieId = \'\" & CookieId & \"\' Where MedlemsIdNr = \'\" & YourId & \"\' \")

  Response.Cookies(\"Memberacces\")(\"CookieId\") = \"\" & CookieId & \"\"
  Response.Cookies(\"Memberacces\").Expires = Date+365
  Response.Redirect \"enellerandenside.asp\" 
  End If
End If
%>
Avatar billede bojohansen Nybegynder
19. april 2001 - 20:16 #12
Hvad siger du tdaugaard

var det noget du ville mene er skudsikkert nok???
Avatar billede bojohansen Nybegynder
19. april 2001 - 20:30 #13
CookiesId1 = MakePassword(20)
\'for at undgå 2 mennesker ender med samme CookiesId sætter vi Id nummer ind foran
CookiesId = YourId & CookiesId1

Så skulle det også være sikret at 2 mennesker ikke får samme cookiesId nummer,selvom det er meget usansynligt
Avatar billede bojohansen Nybegynder
16. maj 2001 - 21:11 #14
Vi satser på at det er sikkert nok :-)
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