Commit 487eb10
committed
fix(e2e): prevent prefix-collision bypass in the php -S router
The static-file containment used str_starts_with($candidate, $root) with a
non-normalized root and no trailing separator, so a sibling directory
sharing the prefix (e.g. ".../phpmyfaq-x") could pass the check. Canonicalize
the root with realpath() and compare against a root that ends in a directory
separator, so only files genuinely inside the docroot are served directly.1 parent 4e23d4f commit 487eb10
1 file changed
Lines changed: 9 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
25 | | - | |
| 28 | + | |
26 | 29 | | |
27 | 30 | | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
31 | | - | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
36 | 39 | | |
37 | | - | |
| 40 | + | |
38 | 41 | | |
39 | 42 | | |
40 | | - | |
41 | | - | |
| 43 | + | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
| |||
0 commit comments