Protection CSRF avec la SCRO-tête d'Origine vs jeton CSRF

Cette question est au sujet de la protection contre les Cross Site Request Forgery attaques seulement.

C'est en particulier sur: la protection par l'Origine de l'en-tête (SCRO) aussi bon que la protection par l'intermédiaire d'un jeton CSRF?

Exemple:

  • Alice est connecté (à l'aide d'un cookie) avec son navigateur pour "https://example.com". Je suppose, qu'elle utilise un navigateur moderne.
  • Alice visites "https://evil.com", et evil.com s'côté client code effectue une sorte de demande de "https://example.com" (classique CSRF scénario).

Donc:

  • Si nous n'avons pas à vérifier l'Origine de l'en-tête (côté serveur), et aucun jeton CSRF, nous avons une CSRF trou de sécurité.
  • Si l'on contrôle un jeton CSRF, nous sommes sûr (mais c'est un peu fastidieux).
  • Si nous ne vérifier l'en-tête d'Origine, la demande de evil.com s'côté client code doit être bloqué juste comme bien comme il le ferait lors de l'utilisation d'un jeton CSRF - sauf, si c'est possible en quelque sorte pour evil.com le code pour définir l'en-tête d'Origine.

Je sais, que cela ne devrait pas être possible avec XHR (voir, par exemple,De sécurité pour le cross-origin resource sharing), au moins pas, si nous avons confiance que le W3C spec être correctement mis en œuvre dans tous les navigateurs modernes (peut-on?)

Mais que sur d'autres types de demandes - par exemple, soumettre? Chargement d'un script/img/tag...? Ou de toute autre manière une page peuvent utiliser (légalement) de créer une demande? Ou peut-être que certains connus JS hack?

Note: je ne parle pas

  • applications natives,
  • manipulé les navigateurs,
  • cross site scripting de bugs dans example.com's page,
  • ...
  • Je crois que beaucoup de procurations de bande de l'en-tête d'origine.
  • Et pour soumettre le formulaire et img/balises de script, nous devrions compter sur les Dsp, vous ne savez pas sur les vieux navigateurs bien.
  • Depuis que la connexion est initiée sur TLS l'utilisateur dispose d'un beaucoup plus urgent que CSRF si un proxy peut man-in-the-middle lui/elle.
  • Il a également ne peut pas faire de mal à utiliser les deux. Ils ne s'influencent les uns les autres.
  • Je crois que cette question appartient à security.stackexchange.com
  • pourquoi auraient-ils bande Origin? Qui irait à l'encontre de la protection de la SCRO.
  • J'aime cette question et ses réponses parce qu'ils sont sur quelque chose de spécifique, mais ils ont aussi de me rappeler la différence entre CSRF et de la SCRO. (J'avoue que ceux qui sont pas facilement être confondus concepts... Mais j'ai encore réussi à les confondre.)