Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Passaggio di parametri nascosto tra pagine
giovedì 10 novembre 2005 - 13.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Bloody
Profilo
| Newbie
11
messaggi | Data Invio:
gio 10 nov 2005 - 13:44
Ciao, è da qualche giorno che sbatto la testa su un problema che più che di codice mi pare algoritmico, nel senso che non riesco a trovare il MODO di farlo, tenendo conto anche della mia scarsa esperienza con .net .
Ho una tabella in un db mysql chiamata messaggio(id,contenuto) e una serie di textbox generate dinamicamente, una per messaggio, che si chiamano come il suo id univoco.
Ad ogni textbox affianco un link a una pagina details, che ha bisogno di conoscere l'id del messaggio.
Non posso passarglielo con get, perchè l'id del messaggio non voglio che sia visibile, pena sql injection e rischi di sicurezza, visto che non tutti gli utenti possono vedere tutti i messaggi.
Pensavo di fare un linkbutton al cui click viene chiamato un metodo interno tipo showdetails(int idmsg) che memorizza nelle variabili di sessione l'id e poi lo passa alla pagina desiderata, però non viene riconosciuto, essendo il linkbutton non ancora fisicamente generato.
E' possibile creare un eventhandler che gestisca tutti i click di un certo tipo? (per esempio, al click di ogni linkbutton che inizia per "det" chiama questo metodo)
Se qualcuno ha soluzioni alternative, o anche solo un suggerimento di una possibile struttura dati da usare.. è ben accetto!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 11 nov 2005 - 11:21
Tu che sviluppatore devi preoccuparti anche di gestire in modo corretto la security.
Tanto per cominciare è utile scrviere le proprie applicazioni usando Stored Procedure che ti consentono di eliminare quasi totalmente il rischio SQL Injection. Seconda analisi, crea degli utenti e/o ruoli su MySQL che abbiano diritti minimi sulle tabelle in questo modo nessuno con una potenziale SQL Injection potrà farti dei DROP TABLE o lanciare altri comandi distruttivi. Terzo, puoi usare tranquillamente in questo caso ilpassaggio di un ID tramite Get. Perchè tu nella pagina successiva fai una cosa di questo tipo:
Scrivo in C# per comodità ma è per farti capire il concetto:
try
{
int k=int.Parse(Request["ID"].ToString();
} catch (Exception ex)
{
Console.WriteLine("E stato inserito qualcolsa che non è un numero");
}
Cosa succede ? Se qualcuno ti mette qualcosa diverso da un numero tentando un attacco di SQL Injection, fallirà sicuramente.
Insomma, vedi che con alcune tecniche:
- Stored Procedure
- Ruoli, utenti e security
- Verifica degli Input
ti trovi ad avere una applicazione ben più sicura rispetto a prima.
Ricordo che Stored Procedure solo se usi MySQL 5.0
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Bloody
Profilo
| Newbie
11
messaggi | Data Invio:
ven 11 nov 2005 - 16:23
grazie x le info, ho cmq risolto creando un linkbutton per ogni textbox a runtime, il cui ID è l'id del messaggio che mi serve; all'evento che corrisponde al click di quel linkbutton, memorizzo l'id in un'apposita variabile di sessione e poi faccio redirect all'altra pagina, che può recuperare il valore dalla sessione.
thanks anyway delle dritte! ;)
Torna su
Stanze Forum
Elenco Threads
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 !