1
0

pathutil.go 405 B

12345678910111213141516
  1. package pathutil
  2. import (
  3. "path"
  4. "strings"
  5. )
  6. // Clean cleans up given path and returns a relative path that goes straight
  7. // down to prevent path traversal.
  8. //
  9. // 🚨 SECURITY: This function MUST be used for any user input that is used as
  10. // file system path to prevent path traversal.
  11. func Clean(p string) string {
  12. p = strings.ReplaceAll(p, `\`, "/")
  13. return strings.Trim(path.Clean("/"+p), "/")
  14. }