Commit 72e95e0702d55567e10c71f94355b26417384780
Committed by
Antonio Terceiro
1 parent
d0f8d245
Exists in
master
and in
29 other branches
Folder body filter javascript but not html code
* Used xss_terminate with the option 'white_list' that only filters the bad html codes. (ActionItem1437)
Showing
2 changed files
with
17 additions
and
0 deletions
Show diff stats
app/models/folder.rb
@@ -4,6 +4,8 @@ class Folder < Article | @@ -4,6 +4,8 @@ class Folder < Article | ||
4 | 4 | ||
5 | settings_items :view_as, :type => :string, :default => 'folder' | 5 | settings_items :view_as, :type => :string, :default => 'folder' |
6 | 6 | ||
7 | + xss_terminate :only => [ :body ], :with => 'white_list' | ||
8 | + | ||
7 | def self.select_views | 9 | def self.select_views |
8 | [[_('Folder'), 'folder'], [_('Image gallery'), 'image_gallery']] | 10 | [[_('Folder'), 'folder'], [_('Image gallery'), 'image_gallery']] |
9 | end | 11 | end |
test/unit/folder_test.rb
@@ -130,4 +130,19 @@ class FolderTest < ActiveSupport::TestCase | @@ -130,4 +130,19 @@ class FolderTest < ActiveSupport::TestCase | ||
130 | 130 | ||
131 | assert_includes folder.images(true), pi | 131 | assert_includes folder.images(true), pi |
132 | end | 132 | end |
133 | + | ||
134 | + should 'not let pass javascript in the body' do | ||
135 | + owner = create_user('testuser').person | ||
136 | + folder = fast_create(Folder, {:profile_id => owner.id, :body => '<script>alert("Xss Attack!")</script>'}) | ||
137 | + folder.save! | ||
138 | + assert_no_match(/<script>/, folder.body) | ||
139 | + end | ||
140 | + | ||
141 | + should 'let pass html in the body' do | ||
142 | + owner = create_user('testuser').person | ||
143 | + folder = fast_create(Folder, {:profile_id => owner.id, :body => '<strong>I am not a Xss Attack!")</strong>'}) | ||
144 | + folder.save! | ||
145 | + assert_match(/<strong>/, folder.body) | ||
146 | + end | ||
147 | + | ||
133 | end | 148 | end |