summaryrefslogtreecommitdiff
path: root/ucb/source
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2023-12-01 08:35:51 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2024-01-09 07:49:11 +0100
commitcf767af8de12157155eaf525ee845b196826aeb9 (patch)
treeabde88ae74a25d7f107e7687f6ead128be3e4812 /ucb/source
parentfb7b0b944741e4efae8d92a6e305036aff906c7a (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.cxx7
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)