Cambia Password… in ASP! | |
![]() |
|
|
ASP Center
Articoli
Referenze
Script
FAQ
Downloads
Siti utili
Menu Javascript
Ricette
Cocktail
Corsi online
Registrazione domini
Area Aziende
|
Cambia Password… in ASP!
La gestione di un'applicazione Web che prevede una fase di login deve necessariamente mettere a disposizione un meccanismo che permetta autonomamente agli utenti dell'applicazione stessa di cambiare la password in qualsiasi momento.
Naturalmente la password in questione deve sempre e comunque rispettare degli standard di sicurezza imposti all'atto dell'iscrizione e rispettati anche in fase di login, oltre che, naturalmente in fase di cambio della password. Si ipotizzi un database Access che chiamiamo "db.mdb" corredato dalla tabella "utenti" e composta dai campi "id" (Contatore) "username" e "password" (Testo, 15 caratteri). Si crei adesso il file cambia-password.asp di cui segue il codice completo:
<%@LANGUAGE = VBScript%>
<%
If Session("username") = "" Then
Response.Write "Accesso negato!"
Response.End
End If
%>
<html>
<head>
<title>Cambia Password... in ASP!</title>
</head>
<body>
<form method="post" action="cambia-password.asp">
Vecchia Password<br>
<td><input type="password" name="vecchia" maxlength="15">
<br><br>
Nuova Password<br>
<input type="password" name="nuova" maxlength="15">
<br><br>
Conferma Password<br>
<input type="password" name="conferma">
<br><br>
<input type="submit" name="cambia" value="Conferma"><br>
</form>
<%
Dim cambia, vecchia, nuova, conferma
cambia = Server.HTMLEncode(Request.Form("cambia"))
vecchia = Request.Form("vecchia")
nuova = Request.Form("nuova")
conferma = Request.Form("conferma")
If cambia = "Conferma" Then
Dim sc, cn, rs, sql
sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" _
& Server.MapPath("db.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open sc
sql = "SELECT password FROM utenti " _
& "WHERE username = '" & Session("username") & "'"
rs.Open sql, cn, 1
If vecchia = "" Or nuova = "" Then
Response.Write "Specificare dei valori!"
ElseIf rs("password") <> vecchia Then
Response.Write "La vecchia passwrod è errata!"
ElseIf nuova <> conferma Then
Response.Write "La conferma della nuova password errata!"
ElseIf vecchia = nuova Then
Response.Write "La vecchia e la nuova password coincidono!"
Else
sql = "UPDATE utenti SET password = '" & nuova & "' WHERE " _
& "username = '" & Session("username") & "'"
cn.Execute(sql)
Response.Write "Password modificata con successo!"
End If
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End If
%>
</body>
</html>
La prima fase del codice prevede la verifica dell'autenticazione dell'utente, dato che solo un utente esistete può cambiare la propria password ed inoltre abbiamo bisogno della sessione contenente la sua username in fase di modifica vera e propria, come vedremo più avanti nel codice.Abbiamo per prima cosa il modulo di cambio password che chiede l'attuale (o vecchia) password, la nuova password e la conferma della scelta della nuova password, in modo da rispettare anche gli standard filosofici di sicurezza vigenti su Internet. Il modulo prevede di per se anche un controllo lato client sulla linghezza della password, ma è opportuno implementare tale controllo anche lato server: cosa che lo script di esempio non fa. Una volta che il modulo è stato effettivamente inviato andiamo ad effettuare una serie di controlli:
* Si consiglia di utilizzare le espressioni regolari per verificare che la password rispetti gli standard di sicurezza utilizzati, come detto in precedenza, in fase di creazione dell'account e di login. |
Newsletter
Stringhe di Conn.
|
||
| © 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Utenti online: 27 - Disclaimer | Pubblicità | Supportaci | Staff | Contatti | ||||
| Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones | ||||