175 introduced a potential dangerous change. If a user registers the regexp .+ for scheme validation (as written in the comment) to allow all possible schemes, a link like <a href="javascript:..."> is valid too. The Go regexp module does not implement negative lookaheads, so you can't write "all but xyz" ((?!javascript|vbscript)).
This PR moves the regexp check a little bit down to be only executed if there was no other explicit scheme registration was found. So now
175 introduced a potential dangerous change. If a user registers the regexp
.+
for scheme validation (as written in the comment) to allow all possible schemes, a link like<a href="javascript:...">
is valid too. The Go regexp module does not implement negative lookaheads, so you can't write "all but xyz" ((?!javascript|vbscript)
).This PR moves the regexp check a little bit down to be only executed if there was no other explicit scheme registration was found. So now
will allow every scheme but
javascript
.An alternative would be to drop
AllowURLSchemesMatching
again and add methodsDisallowURLSchemes
andDisallowURLSchemeWithCustomPolicy
.