Controllo codice asp

mercoledì 14 gennaio 2009 - 15.25

nandonando Profilo | Senior Member

Esiste un controllo che non mi faccia inserire codice pericoloso?
il caso più importante e controllare che non inseriscano tramite insert codice asp.
In pratica gli utenti fanno una registrazione e dato che la possibilità di fare insert è per tutti vorrei un fare controllo del genere se possibile e poi se esistono altri casi che dovre valutare vi ringrazio se me li illustrerete.
http://www.gustoroma.it

alx_81 Profilo | Guru

>Esiste un controllo che non mi faccia inserire codice pericoloso?
>il caso più importante e controllare che non inseriscano tramite
>insert codice asp.
Sì, usando stored procedure parametrizzate (se hai un rdbms che le supporta), o query parametriche come ti indichiamo in questo nostro articolo:
http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx

Ciao!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

nandonando Profilo | Senior Member

Non sò usare le store procedure non esiste un altro modo?
Intendo un semplice controllo anche in asp?
Altrimenti inizierò a studiarmele.
http://www.gustoroma.it

alx_81 Profilo | Guru

>Non sò usare le store procedure non esiste un altro modo?
>Intendo un semplice controllo anche in asp?
>Altrimenti inizierò a studiarmele.
Ma hai letto l'articolo? c'è l'esempio di query parametriche.
Basta che nel tuo commandText metti una query parametrizzata tipo, per una insert:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

poi riempi la collezione dei parametri
objCommand.Parameters.AddWithValue("@param1", valore1); objCommand.Parameters.AddWithValue("@param2", valore2);

e poi esegui

objCommand.ExecuteNonQuery();

In alternativa, potresti usare un SQLDataSource, ma se sei in 1.1, non hai il controllo..
Che ne dici di passare almeno al Framework 2.0?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

nandonando Profilo | Senior Member

Scusami sto usando semplice asp.
http://www.gustoroma.it

alx_81 Profilo | Guru

>Scusami sto usando semplice asp.
ah.. cavolo.. proprio asp classic..
allora studiati le stored procedure.
Se mi dici cosa ti serve, te ne faccio una di esempio, vedrai che non sono difficili

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

nandonando Profilo | Senior Member

Semplice:
insert into tabella ecc.
http://www.gustoroma.it

alx_81 Profilo | Guru

>Semplice:
>insert into tabella ecc.
Allora è semplice. Innanzitutto guardati la CREATE PROCEDURE e la ALTER PROCEDURE qui sotto:

CREATE PROCEDURE (transact-sql)
http://msdn.microsoft.com/it-it/library/ms187926.aspx

ALTER PROCEDURE (transact-sql)
http://msdn.microsoft.com/it-it/library/ms189762.aspx

E qui un semplice e sempio:

CREATE PROCEDURE dbo.proc_InserisciTabella @param1 int, @param2 varchar(50) AS BEGIN -- per non avere i messaggi di ritorno (lascialo sempre se puoi) SET NOCOUNT ON; INSERT INTO Tabella (campo1, campo2) VALUES (@param1, @param2) END

poi nell'asp, devi definire che il tipo di comando CommandType è 4, ovvero stored procedure.
Nel CommandText metti il nome della procedura "dbo.proc_InserisciTabella".
Popoli la collezione dei parametri:

http://support.microsoft.com/kb/164485

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5