[ASP.NET VB] SQL e Sicurezza

domenica 28 settembre 2003 - 23.47

MrWeeBoo Profilo | Newbie

Ciao a tutto il news,
Il mio problema è il seguente:
Ho un sito con delle pagine riservate ad untenti registrati, tali utenti vengono registrati in database MySQL e nella pagina di login vi è una SELECT che va a pescarmi l'utente registrato in base a username e password immessi in tale pagina. Il problema però è che se vado a inserire nei campi username e password dei blocchi di codice SQL riesco a bypassare il controllo password.
Es. basta inserire ' OR 'a'='a in entrambi i campi per avere accesso alle pagine "protette da password" con l'account del primo utente registrato nel database.

Come risolvo ?

PS. Mi hanno parlato degli statements che in JSP risolvono il problema, esiste qualcosa di analogo per VB.NET?

Admin Profilo | Junior Member

sì, esiste qualcosa... e quel qualcosa si chiama: Parameter

Sono degli oggetti che rappresentano dei parametri in uno statement sql. Questo oggetti vanno valorizzati con il valore, e successivamente assegnati alla collection Parameters presente in tutti i DBCommand.

Adesso non so che tipo di provider stai utilizzando per MySql... però posso dirti che per es. in Sql Server si fa qualcosa di questo tipo:

...
...
strSql = "SELECT * FROM CUSTOMERS WHERE customerid = @cId";
SqlCommand sqlCom = new SqlCommand(strSql, myActiveConn);
sqlCom.Parameters.Add("@cId", SqlDbType.Int).Value = 223;
...
...

In questo modo, sarà il parameter e quindi ADO.NET, ad occuparsi di tutto, ed evitare quindi i problemi che hai notato.

Spero di esserti stato d'aiuto.

Ciao!

Stefano Giannone [MCP .NET]
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5