From 8054e48d4a82d47287cabf88d5cf0221515142a5 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Fri, 23 Sep 2022 09:26:36 +0200 Subject: [PATCH] No need for rel="noreferrer noopener" due to `Referrer-Policy` header --- dev/Common/Html.js | 2 +- dev/Model/Message.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dev/Common/Html.js b/dev/Common/Html.js index 331835f47..1014373df 100644 --- a/dev/Common/Html.js +++ b/dev/Common/Html.js @@ -211,7 +211,7 @@ export const } else { oElement.href = stripTracking(value); setAttribute('target', '_blank'); - setAttribute('rel', 'external nofollow noopener noreferrer'); +// setAttribute('rel', 'external nofollow noopener noreferrer'); } setAttribute('tabindex', '-1'); } diff --git a/dev/Model/Message.js b/dev/Model/Message.js index 555911f45..d3d3ef765 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -22,11 +22,11 @@ import PreviewHTML from 'Html/PreviewMessage.html'; import Remote from 'Remote/User/Fetch'; const - url = /(^|[\s\n]|\/?>)(https:\/\/[-A-Z0-9+\u0026\u2019#/%?=()~_|!:,.;]*[-A-Z0-9+\u0026#/%=~()_|])/gi, + url = /(^|\s|\n|\/?>)(https?:\/\/[-A-Z0-9+&#/%?=()~_|!:,.;]*[-A-Z0-9+&#/%=~()_|])/gi, // eslint-disable-next-line max-len - email = /(^|[\s\n]|\/?>)((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x21\x23-\x5b\x5d-\x7f]|\\[\x21\x23-\x5b\x5d-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x21-\x5a\x53-\x7f]|\\[\x21\x23-\x5b\x5d-\x7f])+)\]))/gi, + email = /(^|\s|\n|\/?>)((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x21\x23-\x5b\x5d-\x7f]|\\[\x21\x23-\x5b\x5d-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x21-\x5a\x53-\x7f]|\\[\x21\x23-\x5b\x5d-\x7f])+)\]))/gi, // rfc3966 - tel = /(^|[\s\n]|\/?>)(tel:(\+[0-9().-]+|[0-9*#().-]+(;phone-context=\+[0-9+().-]+)?))/g, + tel = /(^|\s|\n|\/?>)(tel:(\+[0-9().-]+|[0-9*#().-]+(;phone-context=\+[0-9+().-]+)?))/g, hcont = Element.fromHTML('
'), getRealHeight = el => { @@ -483,6 +483,7 @@ export class MessageModel extends AbstractModel { .replace(/-----BEGIN PGP (SIGNED MESSAGE-----(\r?\n[a-z][^\r\n]+)+|SIGNATURE-----[\s\S]*)/, '') .trim() ) +// .replace(url, '$1$2') .replace(url, '$1$2') .replace(email, '$1$2') .replace(tel, '$1$2');