diff --git a/lib/sanitize.rb b/lib/sanitize.rb index ebc045e0..f4c479ec 100644 --- a/lib/sanitize.rb +++ b/lib/sanitize.rb @@ -144,7 +144,7 @@ module Sanitize node.attributes.delete_if { |attr,v| !ALLOWED_ATTRIBUTES.include?(attr) } ATTR_VAL_IS_URI.each do |attr| val_unescaped = CGI.unescapeHTML(node.attributes[attr].to_s).gsub(/[\000-\040\177-\240]+/,'').downcase - if val_unescaped =~ /^[+-.\w]+:/ and !ALLOWED_PROTOCOLS.include?(val_unescaped.split(':')[0]) + if val_unescaped =~ /^[a-z0-9][-+.a-z0-9]*:/ and !ALLOWED_PROTOCOLS.include?(val_unescaped.split(':')[0]) node.attributes.delete attr end end