Defect #35441 » 35441.patch
| lib/redmine/helpers/url.rb | ||
|---|---|---|
| 28 | 28 |
return true unless uri.to_s.include? ":" |
| 29 | 29 | |
| 30 | 30 |
# Other URLs need to be parsed |
| 31 |
schemes.include? URI.parse(uri).scheme |
|
| 31 |
schemes.include? URI.parse(uri.split('?').first).scheme
|
|
| 32 | 32 |
rescue URI::Error |
| 33 | 33 |
false |
| 34 | 34 |
end |
| test/unit/lib/redmine/helpers/url_test.rb | ||
|---|---|---|
| 27 | 27 |
assert uri_with_safe_scheme?("https://example.com/")
|
| 28 | 28 |
assert uri_with_safe_scheme?("ftp://example.com/index.html")
|
| 29 | 29 |
assert uri_with_safe_scheme?("mailto:root@example.com")
|
| 30 | ||
| 31 |
# Gravatar uri of admin@somenet.foo and parameters |
|
| 32 |
assert uri_with_safe_scheme?("https://www.gravatar.com/avatar/982b6086063a22d85509455d8e31cca2?s=32&d=identicon&r=PG")
|
|
| 33 |
assert uri_with_safe_scheme?("https://www.gravatar.com/avatar/982b6086063a22d85509455d8e31cca2?s=32x%x%d=identiconx%x%r=PG")
|
|
| 30 | 34 |
end |
| 31 | 35 | |
| 32 | 36 |
def test_uri_with_safe_scheme_invalid_component |