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