diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-07-06 15:03:33 +0200 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2023-07-07 11:45:32 -0500 |
commit | 5ddae512857eb143ff91741f4a35c186fac1036e (patch) | |
tree | eac71e9d30980d3e2927a0bc9f3e6155db23fc65 /lib | |
parent | 609ee7b2979252464e63acbfd2eff3e0e3786f3e (diff) |
Merge pull request from GHSA-ccm4-vgcc-73hp
* Tighten allowed HTML in oEmbed-based preview cards * Sanitize preview cards at render time * Add `sandbox` attribute to preview card iframes
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sanitize_ext/sanitize_config.rb | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index 82834fd68..85a6edcfe 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -100,26 +100,26 @@ class Sanitize ] ) - MASTODON_OEMBED ||= freeze_config merge( - RELAXED, - elements: RELAXED[:elements] + %w(audio embed iframe source video), + MASTODON_OEMBED ||= freeze_config( + elements: %w(audio embed iframe source video), - attributes: merge( - RELAXED[:attributes], + attributes: { 'audio' => %w(controls), 'embed' => %w(height src type width), 'iframe' => %w(allowfullscreen frameborder height scrolling src width), 'source' => %w(src type), 'video' => %w(controls height loop width), - 'div' => [:data] - ), + }, - protocols: merge( - RELAXED[:protocols], + protocols: { 'embed' => { 'src' => HTTP_PROTOCOLS }, 'iframe' => { 'src' => HTTP_PROTOCOLS }, - 'source' => { 'src' => HTTP_PROTOCOLS } - ) + 'source' => { 'src' => HTTP_PROTOCOLS }, + }, + + add_attributes: { + 'iframe' => { 'sandbox' => 'allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox allow-forms' }, + } ) LINK_REL_TRANSFORMER = lambda do |env| |