WOLFRAM言語チュートリアル

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

Wolfram言語では,コンピュータのファイルシステム(ファイル)へのアクセス,プロセス間通信(WSTP Wolfram言語関数),コードとしてのデータの評価(式と文字列の間の変換),任意の外部プログラムを実行する機能(外部プログラムの呼出し)が提供されている.これらの機能を使うとWolfram言語ユーザは非常に便利なタスクを実行する強力なプログラムが作成できるが,誤用の可能性もある.

Wolframシステムノートブックフロントエンドには,コードの評価にShift+Return評価,初期化セル,動的内容の3つのメカニズムがある.

このチュートリアルにはライブのコントロールが含まれているので,何かを変更すると直ちにシステム設定が変更される.

Shift+Return評価

Shift+Return評価を開始するにはユーザとのインタラクションが必要なので,このメカニズムを使って評価されるコードに悪意のある可能性があるとしてもWolfram言語には防衛手段がない.ユーザは信頼されないソースからのコードに対してShift+Return評価を実行しないようにしなければならない.自分でコードを書いている場合は,コードが意図しない結果をもたらすことのないよう,十分注意を払う必要がある.例えば,自分のコンピュータからファイルを削除するプログラムを評価するとしても,Wolfram言語は警告を出さない.

初期化セル

初期化セルは,あるノートブック内の任意の入力を最初に評価するときに,そのノートブックで必要な初期化コードを評価する便利な方法である.この初期化コードは,ユーザが見ることはほとんどなく,自動的に評価されるので,Wolfram言語は注意を表示し,初期化コードを実行してもよいかどうかを確認する.ユーザは,コードが安全であると断定されない限り,信頼できないソースから得たノートブックの初期化コードを評価してはならない.

1.gif

  • はいボタンをクリックすると,まずノートブックの初期化セルすべてが評価され,選択されたセルが評価される.
  • いいえボタンをクリックすると,初期化セルは全く評価されないが選択されたセルは評価される.この場合,まだ評価されていない初期化コードに依存する評価があるため,エラーが起る可能性がある.
  • キャンセルボタンをクリックすると,初期化セルも選択されたセルも評価されない.

動的内容

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

ユーザが動的内容を含むノートブックを開くとき,Wolfram言語はまずノートブックのディレクトリが信頼されるか,信頼されないか,どちらでもないかを判断する.

  • ノートブックのディレクトリが信頼される場合,ノートブックはユーザに警告を与えず自動的に動的評価を実行することが許可される.
    • ノートブックのディレクトリが信頼されない場合,ノートブックが動的評価を実行するためのすべての試みに対して警告が出される.

    2.gif

    • ノートブックのディレクトリが信頼されるものでも信頼されないものでもない場合,動作は以下で説明するオプションの値に依存する.

    Wolfram言語には,自動評価についてどのノートブックでユーザに警告を出すようにするかを設定するために使うことのできるオプションがある.

TrustedPath

オプションの値は,Wolfram言語が常に信頼するディレクトリのリストである.の任意のディレクトリにあるノートブックファイルはすべてWolfram言語に信頼される.Wolfram言語は信頼されるノートブックが開かれても警告を表示せず,ノートブックは自動的に動的評価を実行することができる.

オプションはデフォルトで$InstallationDirectory$BaseDirectory$UserBaseDirectoryを含んでいるので,Wolframシステムのインストールファイルやインストールされた追加アプリケーションはユーザに警告を出すことなく,動的内容を表示することができる.

以下はコンピュータ上で現在Wolfram言語に信頼されているディレクトリである.

Click for copyable input

"TrustedPathの編集..."

UntrustedPath

オプションの値は,Wolfram言語が常に信頼しないディレクトリのリストである.の任意のディレクトリにあるノートブックファイルはすべてWolfram言語に信頼されない.信頼されないノートブックが開かれ,動的評価を実行しようとするとWolfram言語は常に警告を表示する.

オプション値はデフォルトでユーザのデスクトップフォルダ(Webブラウザダウンロードが保存されることの多い場所),ユーザの環境設定フォルダ(電子メールの添付ファイルが保存されることの多い場所),コンピュータの一時ディレクトリとなっている.もしWebブラウザや電子メールプログラムの設定を変更し,標準的でない場所にダウンロードしたファイルを保存するようにしている場合は,その場所をオプションの値にぜひ加えておいた方がよい.

以下はコンピュータ上で現在Wolfram言語に信頼されていないディレクトリである.

Click for copyable input

"UntrustedPathの編集..."

ネスト

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

  • FrontEnd`FileName[{$HomeDirectory, "Desktop"}]は信頼されない.
  • FrontEnd`FileName[{$HomeDirectory, "Desktop", "SafeNotebooks"}]は信頼される.
  • FrontEnd`FileName[{$HomeDirectory, "Desktop"}, "SomeDownload.nb"]は「Desktop」が信頼されないため,信頼されない.
  • FrontEnd`FileName[{$HomeDirectory, "Desktop", "SafeNotebooks"}, "MyNotebook.nb"]は「SafeNotebooks」が信頼されるため,信頼される.

TrustByDefault

オプションは,ユーザが信頼されているディレクトリでも信頼されていないディレクトリでもないディレクトリにある動的内容を含むノートブックを開こうとしたときに,Wolfram言語が警告を表示するようにするかどうかを決定する.オプションで取れる値は以下の通りである.

Trueのディレクトリにないノートブックを信頼されるものとみなし,開かれるときに警告を表示しない
Falseのディレクトリにないノートブックを信頼されないものとみなし,開かれるときに警告を表示する
Automaticのどちらにもないディレクトリのノートブックでは,それに安全ではない動的内容(以下を参照)が含まれている場合だけ警告を表示する

オプションのデフォルト

オプションの現在の値は である.

安全でない動的内容

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

  • File操作を使う

オプション値の変更

カテゴリのオプションである.このオプションは"環境設定..."ダイアログ,または"オプションインスペクタ..."を使って変更することができる.

オプションの値を変更しようとすると,Wolfram言語はユーザに変更の確認を尋ねる.これは悪意のあるコードがユーザの知らない間にこれらのオプション値を変更することのないようにするための予防策である.

28.gif