Spec-Zone.ru › Elisp

Подозрительный текст

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

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

Чтобы помочь выявлять эти подозрительные текстовые строки, Emacs предоставляет библиотеку для выполнения ряда проверок текста. (Обоснование доступных проверок и более подробную информацию о них см. в UTS #39: механизмы безопасности Unicode.) Пакетам, представляющим данные, которые могут быть подозрительными, следует использовать эту библиотеку, чтобы помечать подозрительный текст при отображении.

Функция: textsec-suspicious-p object type

Эта функция представляет собой интерфейс высокого уровня, который следует использовать пакетам. Она учитывает пользовательский параметр textsec-check, позволяющий отключить проверки.

Эта функция проверяет object (тип данных которого зависит от type), чтобы определить, выглядит ли он подозрительно при интерпретации как объект типа type. Доступны следующие типы и соответствующие им типы данных object:

domain

Проверить, выглядит ли подозрительно доменное имя (например, ‘www.gnu.org’). object должен быть строкой с именем домена.

url

Проверить, выглядит ли подозрительно URL-адрес (например, ‘http://gnu.org/foo/bar’). object должен быть строкой с проверяемым URL-адресом.

link

Проверить, выглядит ли подозрительно ссылка HTML (например, ‘<a href='http://gnu.org'>fsf.org</a>’). В этом случае object должен быть ячейкой cons, где car — строка URL-адреса, а cdr — текст ссылки. Ссылка считается подозрительной, если текст ссылки содержит имя домена, а это имя домена указывает не на тот же адрес URL.

email-address

Проверить, выглядит ли подозрительно адрес электронной почты (например, ‘foo@example.org’). object должен быть строкой.

local-address

Проверить, выглядит ли подозрительно локальная часть адреса электронной почты (часть до знака ‘@’). object должен быть строкой.

name

Проверить, выглядит ли подозрительно имя (используемое в заголовке письма). object должен быть строкой.

email-address-header

Проверить, выглядит ли подозрительно полный заголовок адреса электронной почты RFC2822 (например, ‘=?utf-8?Q?=E2=84=AB?= <foo@example.com>’). object должен быть строкой.

Если object является подозрительным, эта функция возвращает строку с объяснением причины. Если object не является подозрительным, функция возвращает nil.

Если текст является подозрительным, приложение должно пометить его с помощью начертания textsec-suspicious и каким-либо образом предоставить пользователю объяснение, возвращаемое функцией textsec-suspicious-p (например, во всплывающей подсказке). Приложение также может запрашивать у пользователя подтверждение перед выполнением каких-либо действий с подозрительной строкой (например, отправкой письма на подозрительный адрес электронной почты).

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspicious-Text.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API