允许所有带有Origin标头(以 moz-extension:// 开头)的请求是否安全。我做了一个Mozilla Firefox扩展,起源于Mozilla Firefox扩展的请求在Origin标头中有moz-extension://,并且SOP允许所有以moz-extension开头的请求都访问API。
POST /api/props/v2 HTTP/1.1
Host: myapi.com
x-client-type: extension-firefox
x-container-id: ibaIEdttU8MK8
Content-Type: application/json
x-csrf-token: AABFrS2T6x2dVdDnsiRTm2qfRWOZmoKmxI4KQA
origin: moz-extension://23c265bd-c124-4b65-8853-fasdf223882f
由于未在moz扩展名后面进行检查,因此,如果我在起源之后设置了evil-origin.com,我仍然可以发出请求并访问用户数据。
POST /api/props/v2 HTTP/1.1
Host: myapi.com
x-client-type: extension-firefox
x-container-id: ibaIEdttU8MK8
Content-Type: application/json
x-csrf-token: AABFrS2T6x2dVdDnsiRTm2qfRWOZmoKmxI4KQA
origin: moz-extension://evil-origin.com