C'est pour protéger contre une attaque spécifique avec JSON requêtes qui retournent des données à l'aide de HTTP GET.
En fait, si votre méthode d'action ne renvoie pas de données sensibles, alors il doit être sûr pour permettre à l'obtenir.
Cependant, MVC met avec DenyGet comme valeur par défaut pour vous protéger contre cette attaque. Il vous fait envisager les implications de ce que les données que vous exposez, avant de vous décider à l'exposer sur HTTP GET.
Mise à jour
De mon Wrox ASP.NET MVC3 livre:
Par défaut, l'ASP.NET framework MVC ne vous permet pas de répondre à
une demande HTTP GET avec une charge utile JSON. Si vous avez besoin d'envoyer JSON
réponse à OBTENIR un, vous devez autoriser explicitement le comportement par
à l'aide de JsonRequestBehavior.AllowGet que le deuxième paramètre pour le Json
la méthode. Cependant, il ya une chance qu'un utilisateur malveillant peut accéder à
la charge utile JSON à travers un processus connu sous le nom JSON Détournement. Vous n'avez pas
souhaitez retourner des informations sensibles à l'aide de JSON dans une requête GET. Pour
plus de détails, voir Phil poste à
http://haacked.com/archive/2009/06/24/json-hijacking.aspx/.
Haack, Phil (2011). Professionnel ASP.NET MVC 3 (Wrox Programmeur
Programmeur) (Kindle Endroits 6014-6020). Wrox. L'Édition Kindle.