docs: block access to metadata files in nginx sample configs#15102
Open
szaimen wants to merge 1 commit into
Open
docs: block access to metadata files in nginx sample configs#15102szaimen wants to merge 1 commit into
szaimen wants to merge 1 commit into
Conversation
The nginx sample configs served top-level metadata files (composer.json, composer.lock, package.json, package-lock.json, core/shipped.json) as plain files, since they matched neither a 404 block nor the static-asset extension list and fell through to `try_files $uri`. This leaked dependency information. Add a 404 location block matching these files to both the root and subdir sample configs, alongside the existing rules that hide non-public paths. Fixes #15101 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Simon L. <szaimen@e.mail.de>
Contributor
📖 Documentation PreviewNo RST documentation pages changed in this PR. Last updated: Tue, 09 Jun 2026 17:22:56 GMT |
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.
☑️ Resolves
The nginx sample configs (
nginx-root.conf.sampleandnginx-subdir.conf.sample) served the following top-level metadata files as plain files:https://nc-domain/composer.jsonhttps://nc-domain/composer.lockhttps://nc-domain/package.jsonhttps://nc-domain/package-lock.jsonhttps://nc-domain/core/shipped.jsonThese paths matched neither an existing
return 404block nor the static-asset extension list, so they fell through tolocation /→try_files $uriand were served verbatim, leaking dependency information.This adds a 404
locationblock matching these files to both samples, placed alongside the existing rules that hide non-public paths:The block is positioned before the
\.phpand static-asset regex blocks so nginx (which evaluates regexlocationblocks in file order) matches it first.Note
The upstream
server/.htaccessdoes not block these files either — it only covers thebuild|tests|config|lib|3rdparty|templatesdirectories and dotfiles. Apache installs likely have the same exposure. It may be worth opening anextcloud/serverissue to add the equivalent rule there so the two configs don't drift.🖼️ Screenshots
No visual change — these are
literalinclude-d config samples, not rendered page content.✅ Checklist
codespellor similar and addressed any spelling issues🤖 Generated with Claude Code