diff --git a/UI/MailPartViewers/UIxMailPartHTMLViewer.m b/UI/MailPartViewers/UIxMailPartHTMLViewer.m index 244128b44..6761781b6 100644 --- a/UI/MailPartViewers/UIxMailPartHTMLViewer.m +++ b/UI/MailPartViewers/UIxMailPartHTMLViewer.m @@ -487,9 +487,7 @@ _xmlCharsetForCharset (NSString *charset) { skipAttribute = NO; name = [[_attributes nameAtIndex: count] lowercaseString]; - if ([name hasPrefix: @"ON"]) - skipAttribute = YES; - else if ([name isEqualToString: @"src"]) + if ([name isEqualToString: @"src"]) { value = [_attributes valueAtIndex: count]; if ([value hasPrefix: @"cid:"]) @@ -517,13 +515,14 @@ _xmlCharsetForCharset (NSString *charset) name = [NSString stringWithFormat: @"unsafe-%@", name]; } else if ([name isEqualToString: @"href"] - || [name isEqualToString: @"action"]) + || [name isEqualToString: @"action"] + || [name isEqualToString: @"formaction"]) { - value = [_attributes valueAtIndex: count]; - skipAttribute = ([value rangeOfString: @"://"].location - == NSNotFound + value = [[_attributes valueAtIndex: count] lowercaseString]; + skipAttribute = ([value rangeOfString: @"://"].location == NSNotFound && ![value hasPrefix: @"mailto:"] - && ![value hasPrefix: @"#"]); + && ![value hasPrefix: @"#"]) || + [value hasPrefix: @"javascript:"]; if (!skipAttribute) [resultPart appendString: @" rel=\"noopener\""]; }