diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2023-12-01 08:35:51 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2024-01-09 07:49:11 +0100 |
commit | cf767af8de12157155eaf525ee845b196826aeb9 (patch) | |
tree | abde88ae74a25d7f107e7687f6ead128be3e4812 /ucb/source | |
parent | fb7b0b944741e4efae8d92a6e305036aff906c7a (diff) |
lok: external data source list
Make possible to filter allowed data sources.
It is used for WebDAV curl, WEBSERVICE function, cell external
references.
Change-Id: Ifc82af31ff1123b5656a21e6a27624fb1616db39
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160196
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161772
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'ucb/source')
-rw-r--r-- | ucb/source/ucp/webdav-curl/CurlSession.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ucb/source/ucp/webdav-curl/CurlSession.cxx b/ucb/source/ucp/webdav-curl/CurlSession.cxx index a54e9d1addfb..11dc964fbe00 100644 --- a/ucb/source/ucp/webdav-curl/CurlSession.cxx +++ b/ucb/source/ucp/webdav-curl/CurlSession.cxx @@ -37,6 +37,7 @@ #include <rtl/strbuf.hxx> #include <rtl/ustrbuf.hxx> #include <systools/curlinit.hxx> +#include <tools/hostfilter.hxx> #include <config_version.h> #include <map> @@ -1116,6 +1117,12 @@ auto CurlProcessor::ProcessRequest( ::std::pair<::std::vector<OUString> const&, DAVResource&> const* const pRequestedHeaders) -> void { + if (HostFilter::isForbidden(rURI.GetHost())) + { + SAL_WARN("ucb.ucp.webdav.curl", "Access denied to host: " << rURI.GetHost()); + throw uno::RuntimeException("access to host denied"); + } + if (pEnv) { // add custom request headers passed by caller for (auto const& rHeader : pEnv->m_aRequestHeaders) |