diff --git a/advanced/Scripts/webpage.sh b/advanced/Scripts/webpage.sh index f26ce11d..da2afb0f 100755 --- a/advanced/Scripts/webpage.sh +++ b/advanced/Scripts/webpage.sh @@ -486,10 +486,15 @@ SetWebUITheme() { } CheckUrl(){ - local regex + local regex check_url # Check for characters NOT allowed in URLs - regex="[^a-zA-Z0-9:/?&%=~._-]" - if [[ "${1}" =~ ${regex} ]]; then + regex="[^a-zA-Z0-9:/?&%=~._()-;]" + + # this will remove first @ that is after schema and before domain + # \1 is optional schema, \2 is userinfo + check_url="$( sed -re 's#([^:/]*://)?([^/]+)@#\1\2#' <<< "$1" )" + + if [[ "${check_url}" =~ ${regex} ]]; then return 1 else return 0 diff --git a/gravity.sh b/gravity.sh index 5a831dae..dfb863e9 100755 --- a/gravity.sh +++ b/gravity.sh @@ -393,10 +393,15 @@ gravity_DownloadBlocklists() { esac echo -e " ${INFO} Target: ${url}" - local regex + local regex check_url # Check for characters NOT allowed in URLs regex="[^a-zA-Z0-9:/?&%=~._()-;]" - if [[ "${url}" =~ ${regex} ]]; then + + # this will remove first @ that is after schema and before domain + # \1 is optional schema, \2 is userinfo + check_url="$( sed -re 's#([^:/]*://)?([^/]+)@#\1\2#' <<< "$url" )" + + if [[ "${check_url}" =~ ${regex} ]]; then echo -e " ${CROSS} Invalid Target" else gravity_DownloadBlocklistFromUrl "${url}" "${cmd_ext}" "${agent}" "${sourceIDs[$i]}" "${saveLocation}" "${target}" "${compression}"