mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-10 10:53:36 +02:00
security: sanitize path and uri
This commit is contained in:
20
internal/utils/strutils/url.go
Normal file
20
internal/utils/strutils/url.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package strutils
|
||||
|
||||
import "path"
|
||||
|
||||
// SanitizeURI sanitizes a URI reference to ensure it is safe
|
||||
// It disallows URLs beginning with // or /\ as absolute URLs,
|
||||
// cleans the URL path to remove any .. or . path elements,
|
||||
// and ensures the URL starts with a / if it doesn't already
|
||||
func SanitizeURI(uri string) string {
|
||||
if uri == "" {
|
||||
return "/"
|
||||
}
|
||||
if uri[0] != '/' {
|
||||
uri = "/" + uri
|
||||
}
|
||||
if len(uri) > 1 && uri[0] == '/' && uri[1] != '/' && uri[1] != '\\' {
|
||||
return path.Clean(uri)
|
||||
}
|
||||
return "/"
|
||||
}
|
||||
Reference in New Issue
Block a user