GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspicious-Text.html ・ emacs-doc.conao3.com

33.27 不審なテキスト

Emacsは、メールやウェブサイトなど、多くの外部ソースからのテキストを表示できます。攻撃者は、難読化されたURLやメールアドレスを用いて、このテキストを読んでいるユーザーを混乱させ、意図しないウェブページにアクセスさせたり、誤ったアドレスにメールを送信させたりしようとする可能性があります。

通常は、見た目上ASCII文字に見える(つまりホモグリフである)スクリプトの文字を使用しますが、双方向オーバーライドを利用したり、HTMLのリンクテキストにはある内容を記載しつつ、実際のURLは別の場所を指させたりするといった、他の手法も用いられます。

こうした不審なテキスト文字列の特定を支援するため、Emacsではテキストに対してさまざまなチェックを行うライブラリを提供しています。(利用可能なチェックの根拠や詳細については、UTS #39: Unicode Security Mechanismsを参照してください。)不審な可能性があるデータを提示するパッケージは、このライブラリを使用して、表示上の不審なテキストにフラグを立てるべきです。

関数: 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 によって返される説明を何らかの方法(例えばツールチップなど)でユーザーに提示すべきです。また、不審な文字列に対して何らかの操作(不審なメールアドレスへのメール送信など)を行う前に、ユーザーに確認を求めることもあります。