Backport Fix XSS in runbook URL (#681) to v9.2.x (#683)

(cherry picked from commit db1548c1491c2f5b522e3c0ceb1832b914a4b2f0)
(cherry picked from commit 3135a81edf0ebeb575c95560dd548f9589c14d02)
This commit is contained in:
George Robinson
2022-11-29 17:51:34 +01:00
committed by Daniel Lee
parent c98714f77f
commit d3a2936440
@@ -2,7 +2,7 @@ import { css } from '@emotion/css';
import React, { FC, Fragment, useState } from 'react';
import { useLocation } from 'react-router-dom';
import { GrafanaTheme2, urlUtil } from '@grafana/data';
import { GrafanaTheme2, textUtil, urlUtil } from '@grafana/data';
import { config } from '@grafana/runtime';
import { Button, ClipboardButton, ConfirmModal, HorizontalGroup, LinkButton, useStyles2 } from '@grafana/ui';
import { useAppNotification } from 'app/core/copy/appNotification';
@@ -102,7 +102,7 @@ export const RuleDetailsActionButtons: FC<Props> = ({ rule, rulesSource }) => {
variant="primary"
icon="book"
target="__blank"
href={rule.annotations[Annotation.runbookURL]}
href={textUtil.sanitizeUrl(rule.annotations[Annotation.runbookURL])}
>
View runbook
</LinkButton>