Sicurezza postback
Domanda
Di recente ho lavorato con i servizi Web jQuery e * .asmx e sto provando a essere attento alla sicurezza nel farlo.
Immagino che sarebbe possibile inviare una richiesta AJAX - anche quando si è disconnessi - a una risorsa che dovrebbe essere accessibile solo quando si è effettuato l'accesso.
Pertanto, includo chiavi e hash speciali con ciascuna di queste richieste AJAX per convalidare lo stato dell'utente prima di eseguire determinate azioni sul lato server.
TUTTAVIA
Ho sempre pensato che i Postback fossero al sicuro in questo senso. Che .NET avrebbe generato un errore se avesse ricevuto una richiesta che era stata manomessa.
È un presupposto sicuro? O dovrei convalidare TUTTE le richieste, siano esse ricevute tramite AJAX o un POST HTTP non AJAX?
Suppongo che entrambi siano POST tecnicamente HTTP, ma quello AJAX invia solo ciò che passi esplicitamente, mentre un normale ASP.NET include tutti i valori viewstate. È corretto?
Soluzione
Non dovresti fidarti di tutto ciò che arriva su HTTP: è banale produrre una richiesta GET o POST.