Wie kann man sagen, wenn Ansichtszustand in einer ASP.Net-Anwendung wird manipuliert wurde?
Frage
Während eine Diskussion über die Sicherheit, ein Entwickler in meinem Team gefragt, ob es ein Weg zu sagen, ob Ansichtszustand manipuliert wurde. Es ist mir peinlich zu sagen, dass ich nicht die Antwort kennen. Ich sagte ihm, würde ich herausfinden, dachte aber, ich jemanden geben würde, hier eine Chance, zuerst zu beantworten. Ich weiß, dass es einige automatische Validierung, aber ist es eine Möglichkeit, es zu tun manuell, wenn die Ereignisvalidierung nicht aktiviert ist?
Lösung
EnableViewStateMac Seite Richtlinie
Andere Tipps
Viewstate standardmäßig ist MIME codiert und mit einem MAC-Schlüssel (entweder von der Maschine oder von der Datei Web.config) gehasht, die Manipulation hilft zu verhindern (d.h. Dekodierungs sprengt). Sie können auch Viewstate verschlüsseln und komprimieren, wenn Sie für einen weiteren Schutz und weniger Overhead mag, respectively. Siehe MS Viewstate und CodeProject.com
Sie könnten in der Lage sein, es manuell zu tun, aber Sie würden nur den gleichen Algorithmus implementieren, die bereits für Sie da ist. Es ist generell eine schlechte Idee, die Viewstate Validierung auf einer Seite zu deaktivieren.