Bu soru, yalnızca Siteler Arası İstek Sahteciliği saldırılarına karşı korumayla ilgilidir.
Özellikle şunlarla ilgilidir: Origin başlığı (CORS) aracılığıyla koruma, bir CSRF belirteci yoluyla koruma kadar iyi mi?
Misal:
- Alice, tarayıcısıyla " https://example.com " adresinde oturum açtı (bir çerez kullanarak) . Modern bir tarayıcı kullandığını varsayıyorum.
- Alice " https://evil.com " adresini ziyaret eder ve evil.com'un istemci tarafı kodu, " https://example.com " (klasik CSRF senaryosu) için bir tür istek gerçekleştirir .
Yani:
- Origin başlığını (sunucu tarafı) kontrol etmezsek ve CSRF belirteci yoksa, bir CSRF güvenlik açığımız olur.
- Bir CSRF belirtecini kontrol edersek, güvendeyiz (ama bu biraz sıkıcı).
- Origin başlığını kontrol edersek, evil.com'un istemci tarafı kodundan gelen istek, bir CSRF belirteci kullanırken olduğu gibi engellenmelidir - bunun dışında, evil.com'un kodunun Origin başlığını ayarlaması mümkünse.
W3C spesifikasyonunun tüm modern tarayıcılarda doğru şekilde uygulanacağına güveniyorsak, bunun XHR ile mümkün olmaması gerektiğini biliyorum (örneğin , kaynak çapraz kaynak paylaşımı için güvenlik ), en azından hayır
Peki ya diğer türden talepler - örneğin form gönderme? Bir script / img / ... etiketi mi yükleniyor? Veya bir sayfanın (yasal olarak) istek oluşturmak için kullanabileceği başka bir yol? Ya da belki bazı bilinen JS hackleri?
Not: hakkında konuşmuyorum
- yerel uygulamalar,
- değiştirilmiş tarayıcılar,
- example.com sayfasındaki siteler arası komut dosyası hataları,
- ...