12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package internal
- import "net/url"
- // SafeURL removes sensitive information from a URL.
- func SafeURL(u *url.URL) string {
- if nil == u {
- return ""
- }
- if "" != u.Opaque {
- // If the URL is opaque, we cannot be sure if it contains
- // sensitive information.
- return ""
- }
- // Omit user, query, and fragment information for security.
- ur := url.URL{
- Scheme: u.Scheme,
- Host: u.Host,
- Path: u.Path,
- }
- return ur.String()
- }
- // SafeURLFromString removes sensitive information from a URL.
- func SafeURLFromString(rawurl string) string {
- u, err := url.Parse(rawurl)
- if nil != err {
- return ""
- }
- return SafeURL(u)
- }
- // HostFromURL returns the URL's host.
- func HostFromURL(u *url.URL) string {
- if nil == u {
- return ""
- }
- if "" != u.Opaque {
- return "opaque"
- }
- return u.Host
- }
|