ノートブックセキュリティ
Mathematica では,コンピュータのファイルシステム(ファイル)へのアクセス,プロセス間通信(MathLink Mathematica 関数),コードとしてのデータの評価(式と文字列の間の変換),任意の外部プログラムを実行する機能(外部プログラムの呼出し)が提供されている.これらの機能を使うと Mathematica ユーザは非常に便利なタスクを実行する強力なプログラムが作成できるが,誤用の可能性もある.
Mathematica ノートブックフロントエンドには,コードの評価にShift+Enter評価,初期化セル,動的内容の3つのメカニズムがある.
Shift+Enter評価
Shift+Enter評価を開始するにはユーザとのインタラクションが必要なので,このメカニズムを使って評価されるコードに悪意のある可能性があるとしても Mathematica には防衛手段がない.ユーザは信頼されないソースからのコードに対してShift+Enter評価を実行しないようにしなければならない.自分でコードを書いている場合は,コードが意図しない結果をもたらすことのないよう,十分注意を払う必要がある.例えば,自分のコンピュータからファイルを削除するプログラムを評価するとしても,Mathematica は警告を出さない.
初期化セル
初期化セルは,あるノートブック内の任意の入力を最初に評価するときに,そのノートブックで必要な初期化コードを評価する便利な方法である.この初期化コードは,ユーザが見ることはほとんどなく,自動的に評価されるので,Mathematica は注意を表示し,初期化コードを実行してもよいかどうかを確認する.ユーザは,コードが安全であると断定されない限り,信頼できないソースから得たノートブックの初期化コードを評価してはならない.
動的内容
Mathematica には高度な動的インタラクティブ機能が含まれている.インタラクティブなDynamic内容を含むノートブックは,ノートブックファイルを開く以外,ユーザによるアクションは必要とせず自動的にコードを評価することができる.多くの場合,これはユーザが望んでいることであるが,このような自動評価が起る前にユーザは注意しなければならないこともある.
ユーザが動的内容を含むノートブックを開くとき,Mathematica はまずノートブックのディレクトリが信頼されるか,信頼されないか,どちらでもないかを判断する.
TrustedPath
オプションの値は,Mathematica が常に信頼するディレクトリのリストである.
の任意のディレクトリにあるノートブックファイルはすべて Mathematica に信頼される.Mathematica は信頼されるノートブックが開かれても警告を表示せず,ノートブックは自動的に動的評価を実行することができる.
オプションはデフォルトで$InstallationDirectory,$BaseDirectory,$UserBaseDirectoryを含んでいるので,Mathematica のインストールファイルやインストールされた追加アプリケーションはユーザに警告を出すことなく,動的内容を表示することができる.
以下はコンピュータ上で現在 Mathematica に信頼されているディレクトリである.
UntrustedPath
オプションの値は,Mathematica が常に信頼しないディレクトリのリストである.
の任意のディレクトリにあるノートブックファイルはすべて Mathematica に信頼されない.信頼されないノートブックが開かれ,動的評価を実行しようとすると Mathematica は常に警告を表示する.
オプション値はデフォルトでユーザのデスクトップフォルダ(Webブラウザダウンロードが保存されることの多い場所),ユーザの環境設定フォルダ(電子メールの添付ファイルが保存されることの多い場所),コンピュータの一時ディレクトリとなっている.もしWebブラウザや電子メールプログラムの設定を変更し,標準的でない場所にダウンロードしたファイルを保存するようにしている場合は,その場所を
オプションの値にぜひ加えておいた方がよい.
以下はコンピュータ上で現在 Mathematica に信頼されていないディレクトリである.
ネスト
と
のディレクトリはネストすることができる.ノートブックを含むディレクトリが最も深いところにネストされている場合は信頼される.以下に例を挙げる.
- FrontEnd`FileName[{$HomeDirectory, "Desktop", "SafeNotebooks"}, "MyNotebook.nb"]は「SafeNotebooks」が信頼されるため,信頼される.
TrustByDefault
オプションは,ユーザが信頼されているディレクトリでも信頼されていないディレクトリでもないディレクトリにある動的内容を含むノートブックを開こうとしたときに,Mathematica が警告を表示するようにするかどうかを決定する.
オプションで取れる値は以下の通りである.
| True | |
| False | |
| Automatic |
安全でない動的内容
- File操作を使う
- MathLink Mathematica 関数を介してプロセス間通信を使う
- データを式と文字列の間の変換によるコードとして使う
- 名前空間の管理を使う
- オプション管理を使う
- 外部プログラムの呼出しを使う
オプション値の変更
,
,
は
カテゴリのオプションである.このオプションは"環境設定..."ダイアログ,または"オプションインスペクタ..."を使って変更することができる.
,
,
オプションの値を変更しようとすると,Mathematica はユーザに変更の確認を尋ねる.これは悪意のあるコードがユーザの知らない間にこれらのオプション値を変更することのないようにするための予防策である.

