私はカハを勉強し、それがどのように機能するかを理解するいくつかの問題を抱えています:このCaja(安全なJavaScript)コードについての明確化?
図10::。権利増幅を
function Brand() { var flag = false, payload = null; return caja.freeze({ seal: function(payloadToSeal) { function box() { flag = true; payload = payloadToSeal; } box.toString = function() { return "(box)"; }; unseal: function(box) { flag = false; payload = null; try { box(); if (!flag) { throw ...; } return payload; } finally { flag = false; payload = null; } } }); }
これは読み込みキャプションを持っています。各ブランドにはシールと開封済み 機能があり、一致した暗号化および復号化キーのように機能します。封印 オブジェクトは、 対応の封印されていない機能によってのみ開封できる密封ボックスを返します。 に示されている実装技術はM. Stieglerによるものです。
この疑似コードですか?私は、box()
とthrow ...;
など、何が起こっているのか混乱しています。ヒントやアドバイスをいただければ幸いです。
Here is the Specification PDF where I got this.
でシーラー/ unsealerパターンや他の安全な分解パターンを説明します。残りは本物に見えます。 – apsillers
ありがとうたくさんのapsillers!今少しビットがきれいになっています – Coffee