diff options
author | feld <feld@feld.me> | 2019-08-02 17:07:09 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2019-08-02 17:07:09 +0000 |
commit | d93d7779151c811e991e99098e64c1da2c783d68 (patch) | |
tree | f4e1af0a781f7fef4523122bafd1cf19ff95d6ba /lib/pleroma/web/media_proxy | |
parent | 5ff8f07ca906d77a6ec1d5ba912a787f855364f9 (diff) | |
download | pleroma-d93d7779151c811e991e99098e64c1da2c783d68.tar.gz |
Fix/mediaproxy whitelist base url
Diffstat (limited to 'lib/pleroma/web/media_proxy')
-rw-r--r-- | lib/pleroma/web/media_proxy/media_proxy.ex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/web/media_proxy/media_proxy.ex b/lib/pleroma/web/media_proxy/media_proxy.ex index a661e9bb7..1725ab071 100644 --- a/lib/pleroma/web/media_proxy/media_proxy.ex +++ b/lib/pleroma/web/media_proxy/media_proxy.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Web.MediaProxy do alias Pleroma.Config + alias Pleroma.Upload alias Pleroma.Web @base64_opts [padding: false] @@ -26,7 +27,18 @@ defmodule Pleroma.Web.MediaProxy do defp whitelisted?(url) do %{host: domain} = URI.parse(url) - Enum.any?(Config.get([:media_proxy, :whitelist]), fn pattern -> + mediaproxy_whitelist = Config.get([:media_proxy, :whitelist]) + + upload_base_url_domain = + if !is_nil(Config.get([Upload, :base_url])) do + [URI.parse(Config.get([Upload, :base_url])).host] + else + [] + end + + whitelist = mediaproxy_whitelist ++ upload_base_url_domain + + Enum.any?(whitelist, fn pattern -> String.equivalent?(domain, pattern) end) end |