@@ -13,7 +13,14 @@ import {
1313import type { Page } from 'playwright-chromium'
1414import WebSocket from 'ws'
1515import testJSON from '../safe.json'
16- import { browser , isServe , page , viteServer , viteTestUrl } from '~utils'
16+ import {
17+ browser ,
18+ isServe ,
19+ isWindows ,
20+ page ,
21+ viteServer ,
22+ viteTestUrl ,
23+ } from '~utils'
1724
1825const __dirname = path . dirname ( fileURLToPath ( import . meta. url ) )
1926
@@ -538,6 +545,23 @@ describe.runIf(isServe)('invalid request', () => {
538545 expect ( response ) . toContain ( 'HTTP/1.1 403 Forbidden' )
539546 } )
540547
548+ test ( 'should deny request to denied file when a request ends with \\' , async ( ) => {
549+ const response = await sendRawRequest ( viteTestUrl , '/src/.env\\' )
550+ expect ( response ) . toContain (
551+ isWindows ? 'HTTP/1.1 403 Forbidden' : 'HTTP/1.1 404 Not Found' ,
552+ )
553+ } )
554+
555+ test ( 'should deny request to denied file when a request ends with \\ with /@fs/' , async ( ) => {
556+ const response = await sendRawRequest (
557+ viteTestUrl ,
558+ path . posix . join ( '/@fs/' , root , 'root/src/.env' ) + '\\' ,
559+ )
560+ expect ( response ) . toContain (
561+ isWindows ? 'HTTP/1.1 403 Forbidden' : 'HTTP/1.1 404 Not Found' ,
562+ )
563+ } )
564+
541565 test ( 'should deny request with /@fs/ to denied file when a request has /.' , async ( ) => {
542566 const response = await sendRawRequest (
543567 viteTestUrl ,
0 commit comments