chiark / gitweb /
checkupdates: require UpdateCheckData has valid HTTPS URL
authorHans-Christoph Steiner <hans@eds.org>
Thu, 1 Mar 2018 22:51:36 +0000 (23:51 +0100)
committerHans-Christoph Steiner <hans@eds.org>
Thu, 1 Mar 2018 22:51:36 +0000 (23:51 +0100)
fdroidserver/checkupdates.py

index 876dd2aeb978d6707ea1d90e81f28938fe6e46be..d919c72b11a8cbba405065651bf9dc68ad332549 100644 (file)
@@ -30,6 +30,7 @@ import html
 from distutils.version import LooseVersion
 import logging
 import copy
+import urllib.parse
 
 from . import _
 from . import common
@@ -48,6 +49,13 @@ def check_http(app):
             raise FDroidException('Missing Update Check Data')
 
         urlcode, codeex, urlver, verex = app.UpdateCheckData.split('|')
+        parsed = urllib.parse.urlparse(urlcode)
+        if not parsed.netloc or not parsed.scheme or parsed.scheme != 'https':
+            raise FDroidException(_('UpdateCheckData has invalid URL: {url}').format(url=urlcode))
+        if urlver != '.':
+            parsed = urllib.parse.urlparse(urlver)
+            if not parsed.netloc or not parsed.scheme or parsed.scheme != 'https':
+                raise FDroidException(_('UpdateCheckData has invalid URL: {url}').format(url=urlcode))
 
         vercode = "99999999"
         if len(urlcode) > 0: