# Sicurezza attraverso la diversità - perché non mi piace'Non mi piace ValidateRequest

<datetime class="hidden">2004-07-04T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
I' sono consapevole che questo è un [Un punto di vista piuttosto controverso.](http://weblogs.asp.net/ShankuN/archive/2004/03/02/82534.aspx), Dovrei spiegare qualcos'altro del mio background come precursore della mia disgusto per questo . Nei brutti vecchi tempi, Ero un tester di penetrazioneM SK3 gestivo la mia piccola azienda che dava questo servizio ad un certo numero di clientiMSC4 il mio lavoro era essenzialmente smascherare / in altri modi distruggere i siti web e |' altri | ' | reti | Quindi, col passare del tempo mi sono concentrato più sulla scrittura delle applicazioni piuttosto che su la loro rottura I' ho sempre saputo che i sistemi di sicurezza delle applicazioni non dovrebbero essere intrinsecamente affidabiliM SK2 mentre è meno probabile che ci siano difetti rispetto ad alcuni adMSC3implementazione automatica , quell'errore può essere potenzialmente più serio visto che è quasi certo di diventare ampiamente conosciuto e sfruttato in un breve periodo di tempo.
Quella parte del problema che ho con ValidateRequest , fornisce una scorciatoia , una scorciglia per il programmatore pigro . OK, è utileM SK5 blocca qualsiasi html M' come le informazioni di richiesta - e quindi blocca molti XSS R(Cross Site Scripting MRSK10 attacchi che possono essere abbastanza seri P. Il problema è MPSK12 [I difetti sono già stati scoperti in questo.](http://weblogs.asp.net/gad/archive/2003/11/12/37219.aspx) e il riparatore non è ovvio / facile da trovare ( l'avete sentito parlare prima di questo ♫?) \- quindi non c'è ♫ ' un problema che avrà un effetto su tutti i siti ASP \ . \ NET | 1.1 che si affidano a questa funzione per proteggerli dagli attacchi XSS ♫ [Attacchi di SQL Injection](http://www.developer.com/db/article.php/2243461), [Attacchi di sovraflusso del buffere](http://nts.jhu.edu/alerts/alert.detail.cfm?aid=218) e diverse altre (incluendo gemmi come porte posteriori semplici, [Il furto dei biscotti](http://www.experts-exchange.com/Security/Q_20851738.html) e cose del genere).

Il mio punto è:,, secondo me, ,, la responsabilità della sicurezza delle applicazioni dovrebbe appartenere al sviluppatore. -, dovrebbero capire e pianificare le conseguenze delle scelte che fanno nel design delle applicazioni." [Michael Howard scrive il codice sicuro](http://www.amazon.co.uk/exec/obidos/ASIN/0735617228/mostlylucid-21) [[USA](http://www.amazon.com/exec/obidos/ASIN/0735617228/mostlylucid-21)] - scopri dove possono trovarsi le vulnerabilità nella tua applicazione e compensarle.
In breve , non ti affidare a cose come ValidateRequest come la tua unica linea di difesa - usarla in tutti i modi [Quello che in realtà fa](http://weblogs.asp.net/vga/archive/2003/05/02/6329.aspx) e cosa non fa't.

Per esempio, cosa farete quando volete che ci siano solo certi tag e non altri? [Una cosa del genere.](/uploads/HtmlTagRemover.zip)( l'ho scritto un po' fa.

Comunque, le opinioni sono sempre benvenuti - quanta sicurezza dell'applicazione dovreste delegatare al sistema - qualcun altro ha inventato i propri piccoli giocattoli 'securityM SK4 che usano per validare l'input degli utenti

UPDATE: Ho dimenticato di menzionareM SK1 se siete ancora su IIS 5.0 dovete assicurarvi di controllare. [IISLockdown](http://www.microsoft.com/windows2000/downloads/recommended/iislockdown/default.asp) - dovreste averlo installato, vi aiuterà a evitare un enorme numero di buchi di sicurezzaM SK2 conosciuto / futuroMSC4 se avete l'IIS. [Guardate questo.](http://weblogs.asp.net/lbarbieri/archive/2003/10/06/30678.aspx) per evitare problemi di sviluppo...