MVC ist standardmäßig eingestellt auf DenyGet
zum Schutz vor einem sehr spezifischen Angriff mit JSON-Anfragen, um die Wahrscheinlichkeit zu erhöhen, dass die Auswirkungen der Zulassung von HTTP GET
Exposition berücksichtigt werden, bevor sie zugelassen werden.
Im Gegensatz zu später, wenn es vielleicht schon zu spät ist.
Hinweis: Wenn Ihre Aktionsmethode keine sensiblen Daten zurückgibt, sollte es sicher sein, das Get zuzulassen.
Weitere Informationen aus meinem Wrox ASP.NET MVC3-Buch
Standardmäßig erlaubt das ASP.NET MVC-Framework keine Antwort auf eine HTTP GET-Anforderung mit einer JSON-Nutzlast zu antworten. Wenn Sie JSON als Antwort auf eine Antwort auf einen GET senden müssen, müssen Sie das Verhalten explizit zulassen, indem Sie JsonRequestBehavior.AllowGet als zweiten Parameter für die Json Methode. Es besteht jedoch die Möglichkeit, dass ein böswilliger Benutzer Zugriff auf auf die JSON-Nutzdaten durch einen als JSON Hijacking bekannten Prozess. Sie wollen nicht Sie wollen keine sensiblen Informationen mit JSON in einer GET-Anforderung zurückgeben. Für weitere Einzelheiten finden Sie in Phils Beitrag unter http://haacked.com/archive/2009/06/24/json-hijacking.aspx/ o dieser SO-Posten.
Haack, Phil (2011). Professionelles ASP.NET MVC 3 (Wrox Programmer to Programmer) (Kindle Locations 6014-6020). Wrox. Kindle Edition.
Verwandte StackOverflow-Frage
Bei den meisten neueren Browsern (ab Firefox 21, Chrome 27 oder IE 10) ist dies keine Sicherheitslücke mehr.