mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-25 08:11:40 +08:00
f8a2c60297
SanitizePathJoin protects against directory traversal attacks by checking for requests whose URL path look like they are trying to request something other than a local file, and returns the root directory in those cases. The method is also careful to ensure that requests which contain a trailing slash include a trailing slash in the returned value. However, for requests that contain only a slash (requests for the root path), the IsLocal check returns early before the matching trailing slash is re-added. This change updates SanitizePathJoin to only perform the filepath.IsLocal check if the cleaned request URL path is non-empty. --- This change also updates the existing SanitizePathJoin tests to use filepath.FromSlash rather than filepath.Join. This makes the expected value a little easier to read, but also has the advantage of not being processed by filepath.Clean like filepath.Join is. This means that the exact expect value will be compared, not the result of first cleaning it. Fixes #6352 |
||
---|---|---|
.. | ||
caddyevents | ||
caddyfs | ||
caddyhttp | ||
caddypki | ||
caddytls | ||
filestorage | ||
logging | ||
metrics | ||
standard |