webForumDet fria alternativet

Lite säkrare inloggning?

ASP

8 svar · 215 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag skrev om webstudios script lite...är denna bättre...och går det att göra det säkrare enklare?

Dim Username
Username = Request.Form("Username")

Visa = "SELECT \* FROM users WHERE Username='" & Username & "'
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

X = FALSE

If RecSet("Password") = Request.Form("Password") AND RecSet("Access") = "B" Then
X = TRUE
End If

If X = FALSE

	Fel lösenord!

End If

If X = TRUE

Session("username") = Request.Form("username")
Session("password") = Request.Form("password") %\>
Medlem sedan juni 200032 967 inlägg
#2

kika på brws script ganska långt ner i denna tråd, det är inte så dumt.
http://cgi.webforum.nu/wf/Forum11/HTML/003066.html

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

Medlem sedan feb. 20001 590 inlägg
#3

Eller säkrast av allt, skapa ett inloggningskonto på servern. Har du inte direkt tillgång till den, kan det bli lite svårare dock...

/T

------------------
This is what the KLF is about

Medlem sedan maj 20011 312 inlägg
#4

Hej @nders...jag förstår bara inte denna raden i brw:s-script

Connection.Open "driver={SQL Server};SERVER=servern;UID=login;PWD=password;Database=databas"

Medlem sedan maj 20011 312 inlägg
#5

Önskar jag hade direkt tillgång till det...:)

Medlem sedan juni 200032 967 inlägg
#6

så ser en connection string ut om man använder SQL Server som dbms. använd bara samma connectionobjekt och connectionstring som du använt tidigare mot access.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

Medlem sedan maj 20011 312 inlägg
#7

Ok...jag ska testa att göra om den till access...har tittat lite på scriptet och den verkar helt ok...tycker du detta ser bra ut:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open ("driver={Microsoft Access Driver (\*.mdb)}; DBQ=" & Server.MapPath("\\bipride\\db\\users.mdb"))

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT \* FROM users WHERE Username='" & Request.Form("Username") & "' AND Password='" & Request.Form("Password") & "'"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

If RS.EOF Then

Recset.Close
Connect.Close
Response.Redirect("default.asp")

Else

Session("Username") = RecSet("Username")
Session("Password") = RecSet("Password")
Recset.Close
Connect.Close
Response.Redirect("insidan.asp")

End If
Medlem sedan juni 200032 967 inlägg
#8

jag tycker att det ser bra ut, och det ser ut att fungera som det ska.

jag hade dock gjort två små ändringar.

  1. jag hade tagit bort den här raden:
Set RecSet = Server.CreateObject("ADODB.Recordset")
  1. jag hade ändrat den här raden:
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

till

set RecSet = Connect.Execute(Visa)

det känns onödigt att öppna ett recordset på det sättet bara, när vi inte ens ska loopa igenom det.

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

Medlem sedan maj 20011 312 inlägg
#9

Tack @nders...känns som det finns en hel del i min kod att optimera...jag trodde man alltid skulle använda recordset...:)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)