-
Notifications
You must be signed in to change notification settings - Fork 152
REST Security CORS
Cross-Origin Resource Sharing (CORS) is a W3C standard used to configure cross-origin requests.
CORS can be configured/used by all browsers for implementing cross-domain requests. The spec defines a set of HTTP headers that allow the client browser and server to communicate about which requests are allowed.
For request methods other than GET, HEAD and POST, CORS defines a preflight request interaction. The preflight request occurs "behind-the-scenes" between a CORS-compliant user agent and server, in advance of the client's actual request to a cross-origin resource.
API clients send special HTTP request headers such as Origin and Access-Control-Request-Method.
- the Origin header value identifies the requesting client's scheme/host/port
- the Access-Control-Request-Method header value is sent in the CORS preflight request to indicate which HTTP method will be used in the client's actual request
- your REST API SHOULD support CORS only if if needs to be accessed from different domains
- your REST API SHOULD use the Access-Control-Allow-Origin header to list the set of origins that are permitted cross-origin access to its resources.
- if CORS is enabled for your REST API, then you MUST limit the list of allowed origins and be as precise as possible.
This project is distributed under the terms of the EUPL FOSS license
REST Resources Design Workflow
REST Resources Single items and collections
REST Resources Many to many Relations
REST Resources Relations expansion
HTTP Status Codes Success (2xx)
HTTP Status Codes Redirection (3xx)
HTTP Status Codes Client Error (4xx)
HTTP Status Codes Server Error (5xx)
Pagination Out of range/bounds
Long-running Operations Example
Concurrency vs Delete operation
Caching and conditional requests About
Caching and conditional requests Rules
Caching and conditional requests HTTP headers
Error handling Example with a single error
Error handling Example with multiple errors
Error handling Example with parameters
Error handling Example with additional metadata
Bulk operations HTTP status codes
Bulk operations Resources naming convention
Bulk operations Creation example
Bulk operations Update example
Bulk operations Create and update example
File upload Simple file upload
File upload Simple file upload example
File upload Complex file upload
File upload Complex file upload example
REST Security General recommendations
REST Security Insecure direct object references