about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-12-23 02:16:35 +0100
committerEugen Rochko <eugen@zeonfederated.com>2018-12-23 02:16:35 +0100
commite25947db4a44cd50fa1daa36d5031a950327b646 (patch)
tree82e146ce7bb5297d8e1c8bc745c569f9170aa7e1
parentbb62827c16dbf35c70da2dc801f602df3c76fcca (diff)
Sanitize and sandbox toot embeds (#9552)
-rw-r--r--app/controllers/api/web/embeds_controller.rb1
-rw-r--r--app/javascript/mastodon/features/ui/components/embed_modal.js1
2 files changed, 2 insertions, 0 deletions
diff --git a/app/controllers/api/web/embeds_controller.rb b/app/controllers/api/web/embeds_controller.rb
index 987290a14..6231733b7 100644
--- a/app/controllers/api/web/embeds_controller.rb
+++ b/app/controllers/api/web/embeds_controller.rb
@@ -10,6 +10,7 @@ class Api::Web::EmbedsController < Api::Web::BaseController
     render json: status, serializer: OEmbedSerializer, width: 400
   rescue ActiveRecord::RecordNotFound
     oembed = FetchOEmbedService.new.call(params[:url])
+    oembed[:html] = Formatter.instance.sanitize(oembed[:html], Sanitize::Config::MASTODON_OEMBED) if oembed[:html].present?
 
     if oembed
       render json: oembed
diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.js
index 2afb6f3d7..982781db0 100644
--- a/app/javascript/mastodon/features/ui/components/embed_modal.js
+++ b/app/javascript/mastodon/features/ui/components/embed_modal.js
@@ -77,6 +77,7 @@ class EmbedModal extends ImmutablePureComponent {
             className='embed-modal__iframe'
             frameBorder='0'
             ref={this.setIframeRef}
+            sandbox='allow-same-origin'
             title='preview'
           />
         </div>