client: add simple wildcard matching mechanism for trusted domains

This commit is contained in:
prez 2020-05-02 17:15:58 +02:00
parent ff6a6ad5a5
commit 05b7b7dc6e

View File

@ -506,6 +506,12 @@ class SyncplayClient(object):
return False
def isURITrusted(self, URIToTest):
def sWildcardMatch(a, b):
splt = a.split('*')
if len(splt) == 1:
return b.startswith(a)
return b.startswith(splt[0]) and b.endswith(splt[-1])
URIToTest = URIToTest+"/"
for trustedProtocol in constants.TRUSTABLE_WEB_PROTOCOLS:
if URIToTest.startswith(trustedProtocol):
@ -513,7 +519,7 @@ class SyncplayClient(object):
if self._config['trustedDomains']:
for trustedDomain in self._config['trustedDomains']:
trustableURI = ''.join([trustedProtocol, trustedDomain, "/"])
if URIToTest.startswith(trustableURI):
if sWildcardMatch(trustableURI, URIToTest):
return True
return False
else: