Slettet bruger
13. marts 2006 - 17:25
Der er
8 kommentarer og 1 løsning
Login med database
Hej, Er det muligt at man kan forhindre således at tegn så som '&& -|' osv. der kan påvirke databasen så man alligevel får adgang, ikke er muligt? Har prøvet at blokere nogle af udtrykne med diverse 'if' sætninger men der er mange huller synes jeg...
Annonceindlæg fra Computerworld
13. marts 2006 - 18:35
#1
Slettet bruger
13. marts 2006 - 19:22
#2
Der kommer en HTTP 500 - Intern serverfejl når jeg har sat de 2 replace sætninger ind... hvorfor? <% @language=javascript %> <% navn = Replace(Request.Form("brugernavn"), "'", "''") pass = Replace(Request.Form("password"), "'", "''") conn = Server.CreateObject("ADODB.Connection"); DBPath = "DBQ=" + Server.mappath("db/database.mdb"); conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath); rs = conn.Execute("SELECT BRUGERNAVN, PASSWORD, NAVN FROM BRUGER WHERE BRUGERNAVN='"+navn+"' AND PASSWORD='"+pass+"'" ); if(!rs.EOF){ Response.Cookies("bruger")= rs.fields('BRUGERNAVN'); Response.Redirect("login_ok.asp"); } else{ Response.Redirect("login_fejl.asp"); } conn.Close(); %>
14. marts 2006 - 09:36
#3
Et hurtigt gæt, jeg har ikke undersøgt det: Replace er en VBS funktion og findes ikke i javascript !! Hvis det er sandt må du angive' at her er der VBS kode og senere er det javascript kode eller osse må du finde den tilsvarende funktion i javascript. I øvrigt vil jeg anbefale dig at se på regulære udtryk, til at udelukke uheldige tegn. Men det er osse en VBS ting.
14. marts 2006 - 09:39
#4
Hej, Prøv lige at erstattet med dette: <% @language=javascript %> <% navn = Replace(Request.Form("brugernavn"), "'", "''") pass = Replace(Request.Form("password"), "'", "''") conn = Server.CreateObject("ADODB.Connection"); DBPath = "DBQ=" + Server.mappath("db/database.mdb"); conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath); rs = conn.Execute("SELECT BRUGERNAVN, PASSWORD, NAVN FROM BRUGER WHERE BRUGERNAVN='"&navn&"' AND PASSWORD='"&pass&"'" ); if(!rs.EOF){ Response.Cookies("bruger")= rs.fields('BRUGERNAVN'); Response.Redirect("login_ok.asp"); } else{ Response.Redirect("login_fejl.asp"); } conn.Close(); %>
Slettet bruger
14. marts 2006 - 14:29
#5
Den giver mig stadig en siden kan ikke vises HTTP fejl... :-/
14. marts 2006 - 22:44
#6
Hvad med at bruge den her: Det lukker i hvert fald for muligheden som
http://www.opfinderen.dk/sites/15/ beskriver ?
if Request.Form("brugernavn") <> "" AND Request.Form("password") <> "" then
Login
15. marts 2006 - 09:12
#7
Jeg prøver lige en gang til: <% @language=javascript %> <% navn = Replace(Request.Form("brugernavn"), "'", "''") pass = Replace(Request.Form("password"), "'", "''") funktionen replace findes IKKE i javascript afaik. Der skal skrives at nu skiftes der til VBScript. <% @language=vbscript %> eller hvordan syntaksen nu er.
15. marts 2006 - 09:15
#8
Doh! Ser det først nu. EZCali > Se lige FFSoft's rettelse!
Slettet bruger
15. marts 2006 - 17:15
#9
Tak det virker :-)
Kurser inden for grundlæggende programmering