fix(security): add configurable CORS origins via NC_ALLOWED_ORIGINS - #12
Open
FaizanKolega wants to merge 1 commit into
Open
fix(security): add configurable CORS origins via NC_ALLOWED_ORIGINS#12FaizanKolega wants to merge 1 commit into
FaizanKolega wants to merge 1 commit into
Conversation
- Introduces NC_ALLOWED_ORIGINS environment variable for CORS origin whitelisting - Maintains backwards compatibility (defaults to permissive CORS) - Enables credentials when specific origins are configured - Updates all entry points to use centralized CORS configuration - Addresses CWE-346 (Origin Validation Error)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
Provide summary of changes with issue number if any.
Change Summary
Adds configurable CORS origin whitelisting via the
NC_ALLOWED_ORIGINSenvironment variable to address unrestricted CORS configuration (CWE-346).Current behavior: CORS allows all origins (
*) by default across all entry points.New behavior:
NC_ALLOWED_ORIGINSis not set: maintains current permissive behavior (backwards compatible)*: explicitly allows all originsThis allows production/cloud deployments to restrict origins while maintaining flexibility for self-hosted users.
Change type
Test/ Verification
Test 1: Default behavior (no env var)
Test 2: Single origin whitelist
Test 3: Multiple origins
NC_ALLOWED_ORIGINS=https://app.example.com,https://admin.example.com npm start # Both origins should be allowedTest 4: Exposed headers maintained
All configurations should continue to expose
xc-db-responseheader.Additional information / screenshots (optional)
Files modified:
packages/nocodb/src/utils/nc-config/cors.ts- Centralizes CORS configuration logicmain.ts,docker.ts,dockerEntry.ts,cloud.ts,local.ts,testDocker.tsNC_ALLOWED_ORIGINSinconstants.tsSecurity considerations:
Usage examples: