diff --git a/airflow/www/static/js/dag/details/taskInstance/ExtraLinks.tsx b/airflow/www/static/js/dag/details/taskInstance/ExtraLinks.tsx index 1cd4c450c36806..06528eab6e7a11 100644 --- a/airflow/www/static/js/dag/details/taskInstance/ExtraLinks.tsx +++ b/airflow/www/static/js/dag/details/taskInstance/ExtraLinks.tsx @@ -53,6 +53,14 @@ const ExtraLinks = ({ const isExternal = (url: string | null) => url && /^(?:[a-z]+:)?\/\//.test(url); + const isSanitised = (url: string | null) => { + if (!url) { + return true; + } + const urlRegex = /^(https?:)/i; + return urlRegex.test(url); + }; + return ( Extra Links @@ -63,7 +71,7 @@ const ExtraLinks = ({ as={Link} colorScheme="blue" href={url} - isDisabled={!url} + isDisabled={!isSanitised(url)} target={isExternal(url) ? "_blank" : undefined} mr={2} >