diff --git a/docs/config/index.md b/docs/config/index.md index 6bb9836e69094d..82519221acee4d 100644 --- a/docs/config/index.md +++ b/docs/config/index.md @@ -593,6 +593,15 @@ createServer() }) ``` +### server.fs.deny + +- **Experimental** +- **Type:** `string[]` + + Blocklist for sensitive files being restricted to be served by Vite dev server. + + Default to `['.env', '.env.*', '*.{pem,crt}']`. + ### server.origin - **Type:** `string` diff --git a/packages/playground/fs-serve/__tests__/fs-serve.spec.ts b/packages/playground/fs-serve/__tests__/fs-serve.spec.ts index c3d8ee9a9bf911..263bcabad5e41f 100644 --- a/packages/playground/fs-serve/__tests__/fs-serve.spec.ts +++ b/packages/playground/fs-serve/__tests__/fs-serve.spec.ts @@ -41,6 +41,15 @@ describe('main', () => { test('nested entry', async () => { expect(await page.textContent('.nested-entry')).toBe('foobar') }) + + test('nested entry', async () => { + expect(await page.textContent('.nested-entry')).toBe('foobar') + }) + + test('denied', async () => { + expect(await page.textContent('.unsafe-dotenv')).toBe('403') + expect(await page.textContent('.safe-root-file')).toBe('200') + }) } else { test('dummy test to make jest happy', async () => { // Your test suite must contain at least one test. diff --git a/packages/playground/fs-serve/root/src/index.html b/packages/playground/fs-serve/root/src/index.html index 67a2371c6b27fb..b1e93e292d12eb 100644 --- a/packages/playground/fs-serve/root/src/index.html +++ b/packages/playground/fs-serve/root/src/index.html @@ -23,6 +23,10 @@

Unsafe /@fs/ Fetch

Nested Entry


 
+

Denied

+

+

+