02. maj 2006 - 15:40Der er
16 kommentarer og 1 løsning
Bedste login script med bedste sikkerhed
Hej jeg ville høre om nogle af jer har nogle gode login script som er 100 % sikkerhed på. Gerne script som i selv bruger på jeres hjemmesider så i ved om de virker 100 % optimalt.
Er ved at lave en clanside og er derfor meget vigtig at min bruger er 100% sikkere på at ikke blive hacket og fået slettet noget.
Håber på i har nogle scripts har prøvet en del og de fleste er noget være pis.
Så smid mig nogle scripts evt. link til sider med 100 % sikkere login scripts. (skal være 3 adgange)
En til admin, en til normal user, og en til vise admin. Login scripte skal kunne køre sammen med database, så alle der opretter sig som bruger kommer ind i en access database..
På nettet er der ikke noget der er 100% sikkert :o) For det første kan loginoplysningerne fra formfelterne læses når de bliver sendt, medmindre du har et SSL sertifikat.
Dernæst kan session variablerne hackes ved at gætte sig til et aktivt session ID. Hvilket dog er usansynlig, men ikke umuligt.
Disse problemer er normalt noget man bare acceptere, så sålænge du har beskyttet din database mod download (ligger i en skjult mappe) og injections (hele ' problematikken), er dit system sikker.
user = replace(request.form("userField"),"'","''") pass = replace(request.form("passField"),"'","''") set rs = conn.execute("select * from userTable where uName='"& user &"' and pWord='"& pass &"'") if not rs.eof then 'Login OK session("userID") = rs("id") .. else 'Login fejl response.write "Forkert login" end if
ja de der simple login er jeg ved at være træt af har et. men det fungere ikke rigtig for hvis man logger sig ind som normal bruger også skriver i adresse listen navnet på admin border går den lige der ind unden at kræve admin login / password.
Så har du ikke det godt et mere avanceret med login side + check så den køre en del i gennem inden man har adgang.
If (Not rs.BOF) And (Not rs.EOF) Then intUID = rs("id") intTRAN = rs("transfer") Else strERR = "Access Denied" End If
If Len(intUID) > 0 Then Session("id") = intUID response.write session("id") Response.Redirect intTRAN End If
kan du forkorte til: If Not rs.EOF Then intTRAN = rs("transfer") Session("id") = rs("id") if rs("admin") = 1 then session("isAdmin") = true else session("isAdmin") = false end if Response.Redirect intTRAN Else strERR = "Access Denied" End If
Nu ved jeg ikke hvordan du angiver om man er admin, men håber du kan forstå princippet :o)
<% If Request.QueryString("action") = "login" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","''")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'","''")) If (Len(strUID) > 0) And (Len(strPWD) > 0) Then Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM protect WHERE (Username = '" & strUID & "') AND (Password = '" & strPWD & "')", database If Not rs.EOF Then Session("id") = rs("id") if rs("admin") = 1 then session("isAdmin") = true else session("isAdmin") = false end if Response.Redirect rs("transfer") Else strERR = "Access Denied" End If end if If Len(strErr) > 0 Then strErr = "<p><font color=""red"">" & strErr & "</font></p>" End If End If %>
Men som sagt ved jeg ikke hvordan du angiver om en bruger er administrator eller ej, hvorfor jeg har gættet på at der er en "admin" kolonne i tabellen. Er der det?? Eller hvordan angiver du administrator??
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.