Hej ! Hej... det finns många olika sätt .. men det bästa sättet för mig och tror att många kanske håller med att använda session .. vill du ha det ännu säkrare ska du ändra jag fattar inte vad du menar ?? .. kan du förklara lite tydligare .. :) Finns en hel artikel som förklarar probelmatiken: och ett tipsSäker inloggning ! :ASP
Behöver en säker och enkel inloggingsfunktion till min hemsida (ASP).
Användaren ska uppge användarnamn + lösen som kollas mot en Accsess DB.
Har inte lyckats lösa hur man förhindrar att man kommer förbi inloggningen via URL:en
eller att man efter utloggning ej ska kunna gå tillbaka via browserns Framåt/Tillbaka
pilar.
Som ni kanske märker har jag begränsade kunskaper och är mycket tacksam
för den hjälp jag kan få !
Tack på förhand !
JSv: Säker inloggning ! :ASP
Det finns många sätt att lösa det, det hela handlar om hur avancerat man vill ha det hela. Lättast är att när någon angett rätt användarnamn och lösnord får en session satt.
Ex: session("Logedin") = 1
På alla sidor som Kräver inloggning sätter du följande kod i toppen.
<code>
if not session("Logedin") =1 then
Response.redirect("Login.asp")
end if
</code>
Skulle man då skriva en url till en sida som har denna kodsnutt så kommer han/hon till loginsidan, så länge personen inte har loggat in och fått en session satt.
Fördelen med att använda sessions variabel i detta fall är att datan ligger lagrad på serversidan så det går inte att komma åt eller modifiera den.
//Johan NSv: Säker inloggning ! :ASP
login.asp
<code>
<%
Set connect = Server.CreateObject("ADODB.Connection")
connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databasen.mdb")&";"
%>
<form method="POST" action="login.asp?confirm=check">
<b>Användernamn:</b><br>
<input type="text" name="user"><br><br>
<b>Lösenord:</b><br>
<input type="password" name="pass"><br><br>
<input type="submit" value="Logga in">
</form>
<% if request.queryString("confirm") = "check" then
Set RecSet=connect.Execute(" SELECT id,username FROM users WHERE username = '" & Request.Form("user") & "' and password = '" & Request.Form("pass") & "' ")
IF RecSet.EOF THEN
response.write "Din "
else
session("login_stat") = "true"
session("login_user") = Request.Form("user")
session("login_id") = RecSet("id")
SQL = "UPDATE users SET lastonlinedate ='"&now&"' WHERE id = '"& RecSet("id") &"'"
connect.Execute(SQL)
response.redirect "index.asp"
end if
RecSet.close
set RecSet = Nothing
%>
<% end if %>
<%
connect.Close
Set connect = Nothing
%>
</code>
om allt är bra så skickar denna kod till index.asp
index.asp
<code>
<%If Session("login_stat") = "true" Then %>
din index sida ...
<% Else
Response.Redirect("login.asp")
End iF %>
</code>
hoppas du fattar vad jag menar ..
lycka tillSv: Säker inloggning ! :ASP
<code>
Set RecSet=connect.Execute(" SELECT id,username FROM users WHERE username = '" & Request.Form("user") & "' and password = '" & Request.Form("pass") & "' ")
</code>
i kofis kod till
<code>
Set RecSet=connect.Execute(" SELECT id,username FROM users WHERE username = '" & replace(Request.Form("user"),"'","''") & "' and password = '" & replace(Request.Form("pass"),"'","''") & "' ")
</code>
<b>replace(variabel,"'","''")</b> gör att alla ' blir '' det förhindrar att man tex skriver
' or id <> 0
som användarnamn och loggar in som den första i databasen.Sv: Säker inloggning ! :ASP
Sv: Säker inloggning ! :ASP
Artikel [Använd AWE minne i SQL Server 2000]Sv: Säker inloggning ! :ASP
http://www.pellesoft.se/login/tips/t_view4.asp?tid=967
//Putte