Avatar billede 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...
Avatar billede hundevennen Nybegynder
13. marts 2006 - 18:35 #1
Avatar billede 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();   
%>
Avatar billede ffsoft Praktikant
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.
Avatar billede wolfgang Praktikant
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();   
%>
Avatar billede Slettet bruger
14. marts 2006 - 14:29 #5
Den giver mig stadig en siden kan ikke vises HTTP fejl... :-/
Avatar billede cyberkox Nybegynder
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
Avatar billede ffsoft Praktikant
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.
Avatar billede wolfgang Praktikant
15. marts 2006 - 09:15 #8
Doh! Ser det først nu.

EZCali > Se lige FFSoft's rettelse!
Avatar billede Slettet bruger
15. marts 2006 - 17:15 #9
Tak det virker :-)
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