Welche "sensiblen Informationen" könnten beim Einstellen von JsonRequestBehavior auf AllowGet offen gelegt werden?
Ich habe immer die gleichen alten Fehler jedes mal, wenn ich testen eine neue URL
von meinem browser die Adresse bar wenn ich returning Json
(mit dem eingebauten MVC JsonResult helper
):
Diese Anforderung wurde blockiert, weil sensible Informationen offengelegt werden, die zu Websites von Dritten, wenn diese verwendet wird, in einem
GET request
. Zu ermöglichenGET requests
legenJsonRequestBehavior
zuAllowGet
.
Eher als Grunzen, in Anerkennung und Feuer Fiddler zu tun, eine post-Anforderung, diese Zeit, Frage ich mich, was genau es ist, dass ein GET
Anforderung stellt, dass eine POST
Anfrage nicht?
InformationsquelleAutor der Frage A. Murray | 2014-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen, dass Ihre website hat eine
GetUser
web-Methode:http://www.example.com/User/GetUser/32
gibt eine JSON-Antwort:
Wenn diese Methode akzeptiert nur POST-Anfragen, dann wird der Inhalt nur dann an den browser zurückgegeben, wenn ein AJAX-request an
http://www.example.com/User/GetUser/32
mit der POST-Methode. Beachten Sie, sofern Sie umgesetzt haben CORSder browser wird Schutz der Daten von anderen domains machen diese Anfrage zu verkaufen.Jedoch, wenn Sie erlaubt Anfragen BEKOMMEN dann auch eine AJAX-Anforderung ähnlich zu der oben mit GET statt POST, könnte ein böswilliger Benutzer Ihre JSON im Zusammenhang mit Ihrer eigenen Website durch die Verwendung eines
script
- tag in den HTML-Code. z.B. aufwww.evil.com
:Diese sollten Sie JavaScript unbrauchbar zu
www.evil.com
da keine Möglichkeit, das Lesen der Objekt zurückgegeben, indem Sie Ihren web-Methode. Jedoch, aufgrund von bugs in alten Versionen von Browsern (z.B. Firefox 3), ist es möglich, JavaScript-prototype-Objekte neu zu definieren und machen es möglich fürwww.evil.com
zu Lesen, Ihre Daten zurückgegeben, die durch Ihre Methode. Dies ist bekannt als JSON-Hijacking.Sehen dieser Beitrag für einige Methoden, dies zu verhindern. Allerdings ist es nicht ein bekanntes problem mit den neueren Versionen der modernen Browser (Firefox, Chrome, IE).
InformationsquelleAutor der Antwort SilverlightFox
in Ihrem zurückzukehren, verwenden Sie die folgende:
InformationsquelleAutor der Antwort OldTrain
Lesen
JSON-Hijacking
von Phil HaackInformationsquelleAutor der Antwort Murali Murugesan
Wenn wir wollen, dass die Rückgabe eines json Objekt zum client von MVC-Anwendung, sollten wir explizit angeben, JsonRequestBehavior.AllowGet wenn Sie ein Objekt zurückgeben. Als ein Ergebnis, ich komme json-Daten wie folgt zur überwindung des Problems:
InformationsquelleAutor der Antwort Loc Huynh