quali sono le tecniche possibili per evitare SQL o CODE injection..

io per esempio uso sempre le query parametrizzate ,
cosi:
codice:
string strSQL= "select pippo,pluto from topolino where pluto='@note'";
SqlCommand x = new SqlCommand( strSQL, conn);
x.Parameters.Add("@note",System.Data.SqlDbType.VarChar,200);
				x.Parameters["@note"].Value=txt.Text;
e se non posso faccio l'escaping dei caratteri pericolosi
codice:
if(txtFiltro.Text!="")
	{
		fp=txtFiltro.Text.Replace("'","''");
		fp=fp.Replace("%","[%]");
		fp=fp.Replace("[","[[]");
		fp=fp.Replace("]","[]]");
		fp=fp.Replace("_","[_]");
		fp=fp.Replace("#","[#]");
	}
esistono altri metodi?
che ne so?contrallare cookies,campi hidden piuttosto che querystring?
mi piacerebbe avere piu' di una tecnica per sapere meglio orientarmi..

[magari potrebbe diventare una pillola..]