Разработано Российской рабочей группой по универсальному принятию, февраль 2023

Рекомендации по линкификации URL, содержащих кириллические символы

Настоящий документ предназначен для разработчиков программного обеспечения, в котором предполагается реализация механизмов линкификации (преобразования текстовой строки в кликабельную гиперссылку).

Документ содержит подборку лучших практик по автоматизированному созданию гиперссылок, содержащих кириллические доменные имена и кириллические адреса электронной почты, в тексте различного программного обеспечения.

1. Рекомендации по корректному созданию гиперссылок

 Для выявления в тексте адреса веб-ресурса или адреса электронной почты с символами кириллицы и преобразования такого адреса в гиперссылку рекомендуется использовать совокупность всех нижеперечисленных действий*:

  1. Проверить текстовую строку на наличие префикса протокола (например http://, https://, ftp://, mailto:)
  2. Проверить текстовую строку на соответствие формату доменного имени, используя следующие условия:
    • состоит из не менее 2-х строк (меток) разделенных точками;
    • не превышает допустимую длину доменного имени (не более 255 символов по 63 символа на метку в ASCII представлении);
    • получено подтверждение существования домена верхнего уровня в доменном имени при помощи DNS-запроса или в результате обращения к репозитарию IANA (http://data.iana.org/TLD/tlds-alpha-by-domain.txt);
    • содержит только допустимые символы (используя IDN таблицы, если они есть)
  1. Проверить текстовую строку на соответствие формату адреса электронной почты, используя следующие условия:
    • используется корректная доменная часть адреса, см п.1.2;
    • наличие в адресе символа @;
    • допустимая длина локальной части адреса - 64 символа (до знака @);
    • в локальной части адреса используются только допустимые символы в соответствии с лучшими практиками (спецсимволы, такие как точка (.), нижнее подчеркивание (_), дефис (-) и в отдельных случаях символ плюс (+))

    *Данный перечень действий не является полным описанием всех методов выявления текстовых строк, являющихся доменными именами или адресами электронной почты, для их дальнейшего преобразования в гиперссылки. Перечень содержит наиболее распространенные и часто применяемые методы и может быть расширен дополнительными действиями, повышающими эффективность выявления указанных адресных строк.

  1. Проверить текстовую строку на смешение скриптов:
    • если смешение скриптов обнаружено в одной метке доменного имени, то эту метку следует переводить в представление Punycode (https://www.rfc- editor.org/rfc/rfc3492), а саму строку не преобразовывать в гиперссылку.

      Для усиления безопасности пользователей допустимо дополнительно производить трансформацию в такой строке (например, заменить “http” на “hxxp” и/или “.” на “[.]”). В этом случае рекомендуется добавить соответствующие комментарии в тексте программной библиотеки, осуществляющей анализ текста.
    • если смешение скриптов обнаружено в названиях каталогов ресурса, именах файлов, переменных URL и т.д., то такую текстовую строку следует преобразовать в гиперссылку, но перевести в процент-код (https://www.rfc- editor.org/rfc/rfc3986#section-2.1).

2. Общие рекомендации по линкификации

    1. Механизм линкификации рекомендуется применять к текстовым строкам не только в момент их создания, но и при их изменении.
    2. Пользователь должен иметь возможность отключить механизм линкификации или отменить его для конкретной текстовой строки (например, при наборе текста в Word можно отменить создание ссылки клавишей Backspace).
    3. Механизм линкификации должен одинаковым образом осуществлять обработку ссылок для всего взаимодействующего программного обеспечения, не важно, набирается ли текст вручную, переносится ли текст при помощи буфера обмена или передается при помощи программных интерфейсов.