Updating URL validation library, ability to block access to simple (no dot) hostnames like "localhost" with BLOCK_SIMPLEHOSTS setting (#1732)

This commit is contained in:
dgtlmoon
2023-08-13 18:27:55 +02:00
committed by GitHub
parent 126f0fbf87
commit 6ef8a1c18f
4 changed files with 14 additions and 5 deletions

View File

@@ -1,3 +1,6 @@
import os
from distutils.util import strtobool
from flask_expects_json import expects_json
from changedetectionio import queuedWatchMetaData
from flask_restful import abort, Resource
@@ -209,7 +212,9 @@ class CreateWatch(Resource):
json_data = request.get_json()
url = json_data['url'].strip()
if not validators.url(json_data['url'].strip()):
# If hosts that only contain alphanumerics are allowed ("localhost" for example)
allow_simplehost = not strtobool(os.getenv('BLOCK_SIMPLEHOSTS', 'False'))
if not validators.url(url, simple_host=allow_simplehost):
return "Invalid or unsupported URL", 400
if json_data.get('proxy'):