mailto в href: я должен добавить rel noopener, noreferrer? - PullRequest
0 голосов
/ 05 июля 2018

Если у меня есть этот HTML-код:

<a href="mailto:me@example.org" target="_blank"></a>

Насколько я знаю, из соображений безопасности и конфиденциальности лучшие практики подсказывают, что я должен добавлять rel="noopener noreferrer" к каждой ссылке, выходящей наружу. Должен ли я считать mailto ссылку внешней ссылкой?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

В почтовом сообщении, я думаю, это не будет иметь никакого значения. Заголовки реферера включают в себя URL-адрес местоположения исходной ссылки, но в сообщении электронной почты нет URL-адреса, поэтому в этом случае я ожидаю, что заголовок реферера будет пустым или отсутствует.

Невозможно использовать такие вещи, как navigator.registerProtocolHandler в почтовом клиенте, потому что они обычно не поддерживают какие-либо сценарии. Когда вы используете клиент веб-почты, это может вести себя иначе, но я этого не проверял.

В другом направлении, если у вас есть веб-страница, содержащая ссылку mailto, которая отправляется почтовому клиенту, я никогда не видел почтового клиента, который бы что-то делал с URL-адресом реферера, опять же, потому что это не HTTP-клиент и не обрабатывает HTTP-запрос, а передает протокол.

Общая настройка rel="noopener noreferrer" не повредит вашим ссылкам, но я подозреваю, что она не принесет ничего полезного или интересного с точки зрения функциональности или безопасности.

0 голосов
/ 05 июля 2018

Вы можете лучше понять это здесь: https://mathiasbynens.github.io/rel-noopener/

Краткий ответ: не нужно, поскольку ссылка не открывает новый window, который может (ab) использовать проблему window.opener, описанную в ссылке выше.

ОБНОВЛЕНИЕ: Как указывалось в оп - мое предположение, что почтовый клиент будет обрабатывать ссылки mailto:, было неверным. Можно было бы использовать navigator.registerProtocolHandler, чтобы веб-приложение обрабатывало эти ссылки (или любые другие ссылки в этом отношении). Таким образом, я бы сказал, что вы должны добавить rel="noopener noreferrer", как это было первоначально предложено.

...