Unterschied zwischen ")]} ', \ n" und "{} &&" bei der Vermeidung von Jsons Hijacking

9

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?

    
Planky 24.02.2014, 21:38
quelle

1 Antwort

1

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.

    
SilverlightFox 25.02.2014, 10:50
quelle