kątowe strona zaleca poprzedzenie swoje JSONs z )]}'\n
, aby chronić je od nazywany jako jsonp:Jak działa ochrona przed lukami AngularJS JSON?
JSON luka pozwala internetowa strona trzecia, aby włączyć swój adres URL zasobu JSON do JSONP wniosek pod pewnymi warunkami. Aby temu przeciwdziałać, twój serwer może poprzedzać wszystkie żądania JSON następującym ciągiem ")]}", \ n ". Angular automatycznie usunie prefiks przed przetworzeniem go jako JSON.
Ale artykuł odwołuje ma żadnej wzmianki o tych nawiasów zamykających, a ona czuje się, że byłoby to dość łatwe do obejścia (Ponieważ mój JSONView chrom plugin został patched rozebrać je. Dlaczego nie tej pracy dla "atakującego"?).
Zamiast artykuł zaleca owinięcie JSON jako obiekt:
{"d": ["Philha", "my-confession-to-crimes", 7423.42]}
Która jakoś chroni.
Dlaczego AngularJS faworyzuje tę (nieparzystą) ochronę, a działa? Nie jestem pewien, jak to przetestować.
Cool! Dlaczego więc nie postępują zgodnie z radą na blogu? Dzięki jeszcze raz. – Pureferret
Prawdopodobnie z powodów opisanych w ostatnim akapicie odpowiedzi, ale będziesz musiał poprosić ich, aby wiedzieli na pewno. – Quentin