Mamy aplikację .NET C# MVC z niektórymi formularzami, która działa dobrze. Teraz mamy również stronę vbscript ASP Classic, która wymaga interakcji z tymi formularzami, ale przy użyciu zwykłego postu dostaliśmy błąd mówiąc, że nie ustawiono parametru __RequestVerificationToken.Jaki jest pożytek z __RequestVerificationToken?
Dlatego żądamy strony, a następnie przechowujemy token z ukrytego wejścia i pliku cookie w zmiennej i wysyłamy długo z żądaniem POST. I działa.
Widząc jednak, że tak łatwo go ominąć, jaki jest pożytek z tego? Nie oferuje prawie żadnej ochrony.
Tak, to działałoby na żądanie GET. W takim razie warto mieć te rzeczy na miejscu, aby nie mogły ukryć linku w obrazie. Ale ponieważ jest to żądanie POST, atakujący nie może po prostu użyć łącza w formularzu. Potrzebuje javascript lub regularnej formy, którą może kontrolować. A jeśli ma do tego dostęp, może zażądać tokena w imieniu użytkownika i użyć go. –
@ HugoDelsing: czytając [this] (http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/) Dowiedz się, jak działa ValidateAntiForgeryTokenAttribute. Ale imho bez uwierzytelnienia (to jest filtr autoryzacji) token jest bezużyteczny, gdy wskażesz swój post. Uwierzytelnianie uniemożliwia osobie atakującej uzyskanie prawidłowego tokena. – tschmit007