diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb
index d760c329ec..e51f23ac7c 100755
--- a/app/models/spree/product.rb
+++ b/app/models/spree/product.rb
@@ -304,6 +304,16 @@ module Spree
)
end
+ # Remove any unsupported HTML.
+ def description
+ Rails::HTML::SafeListSanitizer.new.sanitize(super)
+ end
+
+ # # Remove any unsupported HTML.
+ def description=(html)
+ super(Rails::HTML::SafeListSanitizer.new.sanitize(html))
+ end
+
private
def update_units
diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb
index 15667125c3..993b1cb833 100644
--- a/spec/models/spree/product_spec.rb
+++ b/spec/models/spree/product_spec.rb
@@ -748,6 +748,18 @@ module Spree
expect(e.variants.reload).to be_empty
end
end
+
+ describe "serialisation" do
+ it "sanitises HTML in description" do
+ subject.description = "Hello dearest monster."
+ expect(subject.description).to eq "Hello alert dearest monster."
+ end
+
+ it "sanitises existing HTML in description" do
+ subject[:description] = "Hello dearest monster."
+ expect(subject.description).to eq "Hello alert dearest monster."
+ end
+ end
end
RSpec.describe "product import" do