Sanitize PMA URL host and prevent double :8443
parent
f9ff40c69b
commit
b75eba33b3
|
|
@ -51,6 +51,14 @@ HOSTNAME_DOMAIN=${HOSTNAME_DOMAIN#node*-}
|
||||||
DOMAIN_CANDIDATES=()
|
DOMAIN_CANDIDATES=()
|
||||||
SEEN_DOMAINS="|"
|
SEEN_DOMAINS="|"
|
||||||
for candidate in "$CERT_DOMAIN" "${JELASTIC_ENV_DOMAIN:-}" "$HOSTNAME_DOMAIN"; do
|
for candidate in "$CERT_DOMAIN" "${JELASTIC_ENV_DOMAIN:-}" "$HOSTNAME_DOMAIN"; do
|
||||||
|
# Normalize host-like input (strip scheme/path/port if present).
|
||||||
|
candidate="${candidate#https://}"
|
||||||
|
candidate="${candidate#http://}"
|
||||||
|
candidate="${candidate%%/*}"
|
||||||
|
if [[ "$candidate" =~ ^(.+):[0-9]+$ ]]; then
|
||||||
|
candidate="${BASH_REMATCH[1]}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "$candidate" ]] && [[ "$candidate" != *'${'* ]] && [[ "$SEEN_DOMAINS" != *"|$candidate|"* ]]; then
|
if [[ -n "$candidate" ]] && [[ "$candidate" != *'${'* ]] && [[ "$SEEN_DOMAINS" != *"|$candidate|"* ]]; then
|
||||||
DOMAIN_CANDIDATES+=("$candidate")
|
DOMAIN_CANDIDATES+=("$candidate")
|
||||||
SEEN_DOMAINS="${SEEN_DOMAINS}${candidate}|"
|
SEEN_DOMAINS="${SEEN_DOMAINS}${candidate}|"
|
||||||
|
|
@ -108,6 +116,16 @@ for candidate in "${DOMAIN_CANDIDATES[@]}"; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Otherwise prefer the first host-like candidate containing letters (avoid bare IP if possible).
|
||||||
|
if [[ ! "$URL_HOST" =~ ^[^.]+\.mightybox\.cloud$ ]]; then
|
||||||
|
for candidate in "${DOMAIN_CANDIDATES[@]}"; do
|
||||||
|
if [[ "$candidate" =~ [A-Za-z] ]]; then
|
||||||
|
URL_HOST="$candidate"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
PMADB_DIR="/usr/share/phpMyAdmin"
|
PMADB_DIR="/usr/share/phpMyAdmin"
|
||||||
GATEWAY_FILE="$PMADB_DIR/access-db-$SLUG.php"
|
GATEWAY_FILE="$PMADB_DIR/access-db-$SLUG.php"
|
||||||
|
|
||||||
|
|
@ -530,6 +548,14 @@ if [[ -z "${URL_HOST:-}" ]]; then
|
||||||
URL_HOST="$ENV_HOST"
|
URL_HOST="$ENV_HOST"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Defensive sanitization before composing final URL.
|
||||||
|
URL_HOST="${URL_HOST#https://}"
|
||||||
|
URL_HOST="${URL_HOST#http://}"
|
||||||
|
URL_HOST="${URL_HOST%%/*}"
|
||||||
|
if [[ "$URL_HOST" =~ ^(.+):[0-9]+$ ]]; then
|
||||||
|
URL_HOST="${BASH_REMATCH[1]}"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "INFO: Gateway URL host selected: $URL_HOST" >&2
|
echo "INFO: Gateway URL host selected: $URL_HOST" >&2
|
||||||
URL="https://$URL_HOST:8443/access-db-$SLUG.php?token=$token"
|
URL="https://$URL_HOST:8443/access-db-$SLUG.php?token=$token"
|
||||||
echo "$URL"
|
echo "$URL"
|
||||||
Loading…
Reference in New Issue