Beim Lesen darüber, wie JSON-Hijacking vermieden werden kann, habe ich verschiedene Methoden kennengelernt, einschließlich POSTING alles oder Voranstellen von Antworten, damit sie kein gültiges JavaScript sind.
Die gebräuchlichste Methode zum Vorgeben ist, {} &&
vor Ihrem Objekt oder Array hinzuzufügen. Angular schlägt mit )]}',\n
vor.
Warum verwendet eckig nicht die Standardmethode {} &&
? Ist man nicht völlig sicher? Ist es noch schwieriger in JavaScript zu verwenden? Eckig beiseite, gibt es einen guten Grund dafür, den weniger populären Ansatz zu nehmen?
Alles, was verhindert, dass die JSON-Antwort als JavaScript-Objekt oder -Array analysiert wird, verhindert diese Methode des JSON-Hijackings.
Siehe diesen Beitrag für einige Methoden, um Ihren JSON sicher zu machen .
Wie in dieser Antwort angegeben , ist dies jedoch seit Firefox 3 kein wirkliches Problem.
Google verwendet einen "nicht zu überprüfenden [Gruft]", um sich gegen diese Art von Angriff zu verteidigen. Es sollte beachtet werden, dass diese Sicherheitslücke in Firefox 3 behoben wurde, und diese Sicherheitslücke entsteht dadurch, dass Browser die JSON-Spezifikation auffrischen.
Zum Zeitpunkt des Schreibens scheint Google )]}'
den Antworten von Google Mail voranzustellen.
Tags und Links javascript angularjs security json hijack