ノートブックセキュリティ

Wolfram言語では,コンピュータのファイルシステム(ファイル)へのアクセス,プロセス間通信(WSTP Wolfram言語関数),コードとしてのデータの評価(式と文字列の間の変換),任意の外部プログラムを実行する機能(外部プログラムの呼出し)が提供されている.これらの機能を使うとWolfram言語ユーザは非常に便利なタスクを実行する強力なプログラムが作成できるが,誤用の可能性もある.
Wolframシステムノートブックフロントエンドには,コードの評価にShift+Enter評価,初期化セル,動的内容の3つのメカニズムがある.
このチュートリアルにはライブのコントロールが含まれているので,何かを変更すると直ちにシステム設定が変更される.
Shift+Enter評価
Shift+Enter評価を開始するにはユーザとのインタラクションが必要なので,このメカニズムを使って評価されるコードに悪意のある可能性があるとしてもWolfram言語には防衛手段がない.ユーザは信頼されないソースからのコードに対してShift+Enter評価を実行しないようにしなければならない.自分でコードを書いている場合は,コードが意図しない結果をもたらすことのないよう,十分注意を払う必要がある.例えば,自分のコンピュータからファイルを削除するプログラムを評価するとしても,Wolfram言語は警告を出さない.
初期化セル
初期化セルは,あるノートブック内の任意の入力を最初に評価するときに,そのノートブックで必要な初期化コードを評価する便利な方法である.この初期化コードは,ユーザが見ることはほとんどなく,自動的に評価されるので,Wolfram言語は注意を表示し,初期化コードを実行してもよいかどうかを確認する.ユーザは,コードが安全であると断定されない限り,信頼できないソースから得たノートブックの初期化コードを評価してはならない.

1.gif

動的内容
Wolfram言語には高度な動的インタラクティブ機能が含まれている.インタラクティブなDynamic内容を含むノートブックは,ノートブックファイルを開く以外,ユーザによるアクションは必要とせず自動的にコードを評価することができる.多くの場合,これはユーザが望んでいることであるが,このような自動評価が起る前にユーザは注意しなければならないこともある.
ユーザが動的内容を含むノートブックを開くとき,Wolfram言語はまずノートブックのディレクトリが信頼されるか,信頼されないか,どちらでもないかを判断する.

TrustedPath

TrustedPathオプションの値は,Wolfram言語が常に信頼するディレクトリのリストである.TrustedPathの任意のディレクトリにあるノートブックファイルはすべてWolfram言語に信頼される.Wolfram言語は信頼されるノートブックが開かれても警告を表示せず,ノートブックは自動的に動的評価を実行することができる.
TrustedPathオプションはデフォルトで$InstallationDirectory$BaseDirectory$UserBaseDirectoryを含んでいるので,Wolframシステムのインストールファイルやインストールされた追加アプリケーションはユーザに警告を出すことなく,動的内容を表示することができる.
以下はコンピュータ上で現在Wolfram言語に信頼されているディレクトリである.

UntrustedPath

UntrustedPathオプションの値は,Wolfram言語が常に信頼しないディレクトリのリストである.UntrustedPathの任意のディレクトリにあるノートブックファイルはすべてWolfram言語に信頼されない.信頼されないノートブックが開かれ,動的評価を実行しようとするとWolfram言語は常に警告を表示する.
UntrustedPathオプション値はデフォルトでユーザのデスクトップフォルダ(Webブラウザダウンロードが保存されることの多い場所),ユーザの環境設定フォルダ(電子メールの添付ファイルが保存されることの多い場所),コンピュータの一時ディレクトリとなっている.もしWebブラウザや電子メールプログラムの設定を変更し,標準的でない場所にダウンロードしたファイルを保存するようにしている場合は,その場所をUntrustedPathオプションの値にぜひ加えておいた方がよい.
以下はコンピュータ上で現在Wolfram言語に信頼されていないディレクトリである.

ネスト

TrustedPathUntrustedPathのディレクトリはネストすることができる.ノートブックを含むディレクトリが最も深いところにネストされている場合は信頼される.以下に例を挙げる.

TrustByDefault

TrustByDefaultオプションは,ユーザが信頼されているディレクトリでも信頼されていないディレクトリでもないディレクトリにある動的内容を含むノートブックを開こうとしたときに,Wolfram言語が警告を表示するようにするかどうかを決定する.TrustByDefaultオプションで取れる値は以下の通りである.
True
UntrustedPathのディレクトリにないノートブックを信頼されるものとみなし,開かれるときに警告を表示しない
False
TrustedPathのディレクトリにないノートブックを信頼されないものとみなし,開かれるときに警告を表示する
Automatic
TrustedPathUntrustedPathのどちらにもないディレクトリのノートブックでは,それに安全ではない動的内容(以下を参照)が含まれている場合だけ警告を表示する
TrustByDefaultオプションのデフォルト
TrustByDefaultオプションの現在の値は である.

安全でない動的内容

動的内容は以下のような場合,安全でないとみなされる.

オプション値の変更

TrustedPathUntrustedPathTrustByDefaultNotebookSecurityOptionsカテゴリのオプションである.このオプションは"環境設定..."ダイアログ,または"オプションインスペクタ..."を使って変更することができる.
TrustedPathUntrustedPathTrustByDefaultオプションの値を変更しようとすると,Wolfram言語はユーザに変更の確認を尋ねる.これは悪意のあるコードがユーザの知らない間にこれらのオプション値を変更することのないようにするための予防策である.

3.gif