+V3.5 Browser Origin Separation
---+V3.5.1 Verify that, if the application does not rely on the CORS preflight mechanism to prevent disallowed …
---+V3.5.2 Verify that, if the application relies on the CORS preflight mechanism to prevent disallowed …
---+V3.5.3 Verify that HTTP requests to sensitive functionality use appropriate HTTP methods such as POST …
---+V3.5.4 Verify that separate applications are hosted on different hostnames to leverage the restrictions …
---+V3.5.5 Verify that messages received by the postMessage interface are discarded if the origin of the …
---+V3.5.6 Verify that JSONP functionality is not enabled anywhere across the application to avoid Cross-Site …
---+V3.5.7 Verify that data requiring authorization is not included in script resource responses, like …
---+V3.5.8 Verify that authenticated resources (such as images, videos, scripts, and other documents) can be …

V3.5 Browser Origin Separation

When accepting a request to sensitive functionality on the server side, the application needs to ensure the request is initiated by the application itself or by a trusted party and has not been forged by an attacker.

Sensitive functionality in this context could include accepting form posts for authenticated and non-authenticated users (such as an authentication request), state-changing operations, or resource-demanding functionality (such as data export).

The key protections here are browser security policies like Same Origin Policy for JavaScript and also SameSite logic for cookies. Another common protection is the CORS preflight mechanism. This mechanism will be critical for endpoints designed to be called from a different origin, but it can also be a useful request forgery prevention mechanism for endpoints which are not designed to be called from a different origin.

1. Преглед

Наименование Стандарт
V3.5.1 Verify that, if the application does not rely on the CORS preflight mechanism to prevent disallowed …

Verify that, if the application does not rely on the CORS preflight mechanism to prevent disallowed cross-origin requests to use sensitive functionality, these requests are validated to ensure they originate from the application itself. This may be done by using and validating anti-forgery tokens or requiring extra HTTP header fields that are not CORS-safelisted request-header fields. This is to defend against browser-based request forgery attacks, commonly known as cross-site request forgery (CSRF).

V3.5.2 Verify that, if the application relies on the CORS preflight mechanism to prevent disallowed …

Verify that, if the application relies on the CORS preflight mechanism to prevent disallowed cross-origin use of sensitive functionality, it is not possible to call the functionality with a request which does not trigger a CORS-preflight request. This may require checking the values of the 'Origin' and 'Content-Type' request header fields or using an extra header field that is not a CORS-safelisted header-field.

V3.5.3 Verify that HTTP requests to sensitive functionality use appropriate HTTP methods such as POST …

Verify that HTTP requests to sensitive functionality use appropriate HTTP methods such as POST, PUT, PATCH, or DELETE, and not methods defined by the HTTP specification as "safe" such as HEAD, OPTIONS, or GET. Alternatively, strict validation of the Sec-Fetch-* request header fields can be used to ensure that the request did not originate from an inappropriate cross-origin call, a navigation request, or a resource load (such as an image source) where this is not expected.

V3.5.4 Verify that separate applications are hosted on different hostnames to leverage the restrictions …

Verify that separate applications are hosted on different hostnames to leverage the restrictions provided by same-origin policy, including how documents or scripts loaded by one origin can interact with resources from another origin and hostname-based restrictions on cookies.

V3.5.5 Verify that messages received by the postMessage interface are discarded if the origin of the …

Verify that messages received by the postMessage interface are discarded if the origin of the message is not trusted, or if the syntax of the message is invalid.

V3.5.6 Verify that JSONP functionality is not enabled anywhere across the application to avoid Cross-Site …

Verify that JSONP functionality is not enabled anywhere across the application to avoid Cross-Site Script Inclusion (XSSI) attacks.

V3.5.7 Verify that data requiring authorization is not included in script resource responses, like …

Verify that data requiring authorization is not included in script resource responses, like JavaScript files, to prevent Cross-Site Script Inclusion (XSSI) attacks.

V3.5.8 Verify that authenticated resources (such as images, videos, scripts, and other documents) can be …

Verify that authenticated resources (such as images, videos, scripts, and other documents) can be loaded or embedded on behalf of the user only when intended. This can be accomplished by strict validation of the Sec-Fetch-* HTTP request header fields to ensure that the request did not originate from an inappropriate cross-origin call, or by setting a restrictive Cross-Origin-Resource-Policy HTTP response header field to instruct the browser to block returned content.

1.1 Препратки

1.2 Идентифицирани изисквания

1.3 Свързани регулации

2. Идентифицирани изисквания

Изисквания
Източник Изискване

3. Свързани регулации

Регулации
Източник Регулация
  • OWASP -

    EN: Publications of the OWASP Foundation, https://owasp.org/. OWASP® is a registered trademark of the OWASP Foundation, Inc.; GRCA is not affiliated with, nor endorsed by, the OWASP Foundation. Only the versions published by OWASP are authoritative.

    DE: Veröffentlichungen der OWASP Foundation, https://owasp.org/. OWASP® ist eine eingetragene Marke der OWASP Foundation, Inc.; GRCA steht in keiner Verbindung zur OWASP Foundation und wird von ihr nicht unterstützt. Maßgeblich sind allein die von OWASP veröffentlichten Fassungen.