Skip to content

Commit aa4f04f

Browse files
committed
Address false positives on malicious upload check
1 parent 02d881b commit aa4f04f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

app/helpers/camaleon_cms/uploader_helper.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,23 @@
22

33
module CamaleonCms
44
module UploaderHelper
5-
SUSPICIOUS_PATTERNS = [
5+
UNSAFE_EVENT_PATTERNS = %w[
6+
onabort onafter onbefore onblur oncanplay onchange onclick oncontextmenu oncopy oncuechange oncut ondblclick
7+
ondrag ondrop ondurationchange onended onerror onfocus onhashchange oninvalid oninput onkey onload onmessage
8+
onmouse ononline onoffline onpagehide onpageshow onpage onpaste onpause onplay onpopstate onprogress
9+
onpropertychange onratechange onreadystatechange onreset onresize onscroll onsearch onseek onselect onshow
10+
onstalled onstorage onsuspend ontimeupdate ontoggle onunloadonsubmit onvolumechange onwaiting onwheel
11+
].map { |pattern| /#{pattern}\w*\s*=/i }.freeze
12+
13+
SUSPICIOUS_PATTERNS = (UNSAFE_EVENT_PATTERNS + [
614
/<script[\s>]/i, # Script tags
7-
/on\w{3,}\s*=/i, # Inline event handlers like oncut, onload, onclick, etc.
815
/javascript:/i, # JavaScript in href/src attributes
916
/<iframe[\s>]/i, # Iframes
1017
/<object[\s>]/i, # Object tags
1118
/<embed[\s>]/i, # Embed tags
1219
/<base[\s>]/i, # Base tags (can be used to manipulate URLs)
1320
/data:/i # data: URLs (which can include scripts)
14-
].freeze
21+
]).freeze
1522

1623
include ActionView::Helpers::NumberHelper
1724
include CamaleonCms::CamaleonHelper

0 commit comments

Comments
 (0)