Domanda

Voglio aggiungere Querystring "controllo" e la registrazione nel caso di "manomesso" querystrings. È l'evento Page_Init su una determinata pagina il posto giusto per farlo nel ciclo di vita pagina ASP.Net?

È stato utile?

Soluzione

La mia regola generale è di fare tutto il più presto possibile. Questo potrebbe includere anche la verifica già nel Application.BeginRequest (che si verifica eventi possono prima che la pagina viene anche caricata), a condizione che la verifica di query stringa non è dipendente dalla pagina.

La domanda qui è "Quali ritiene essere la manomissione?" le chiavi non valide? Valori non validi? I tentativi di tag di codifica che potrebbe auspicabilmente essere scritti alla pagina risultante come parte di un attacco XSS?

E 'difficile dare qualsiasi tipo di consulenza specifica, senza sapere di più su cosa si sta cercando di realizzare.

Modifica : per accedere agli eventi di applicazione, aggiungere un Globale Classe Application per il progetto tramite l'opzione 'Add New Item'

.

Ogni richiesta innesca la del ciclo di vita , e la pagina del ciclo di vita è solo un sotto-processo all'interno che quando il gestore della richiesta sembra essere un file aspx.

EDIT2 : la pulizia dei dati stringa di query dipende interamente da ciò che si sta utilizzando i dati per. Alcuni usi potenzialmente pericolosi per i dati di stringa di query includono:

  • I valori per un comando SQL :. SQL injection può essere in gran parte ridotto utilizzando 'query parametrizzate'
  • Posizione dei file :. Questo potrebbe essere utilizzato per rendere la tosse server di qualsiasi file sul disco rigido se le autorizzazioni NTFS sul server sono lassista
  • valori scritti nella risposta HTML : un utente può codificare un tag ed eseguire alcuni JavaScript. Assicurarsi di utilizzare Server.Encode () o ripulire manualmente la stringa.
  • valori ID : Se si utilizza la stringa di query ai valori Codice del negozio, un utente potrebbe sostituire quelli con gli altri in a tentare di accedere alle informazioni su cose che non dovrebbero vedere, un esempio di quale potrebbe essere:

    http://domain.com/somepage.aspx?userid=1343243

L'utente effettua un'ipotesi e cambia questo:

http://domain.com/somepage.aspx?userid=0

E che potrebbe far apparire l'utente Admin.

Altri suggerimenti

Quello che seguiamo nel nostro progetto per l'utilizzo crittografare e decifrare querystring. Posso inviare quella classe per crittografare e funzione di decifrare. Ma per riferimento si può iniziare con seguente URL se aiuta.

http://geekswithblogs.net/casualjim/articles/64639.aspx

Ora, in questo caso è temperato, non poteva essere decifrato. È possibile scrivere eccezione a livello di pagina per esso e reindirizzamento alla corretta pagina di errore.

Fammi sapere se hai bisogno di maggiori informazioni su qualsiasi punto specifico.

Saluti !!!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top