Null Pointer Micromanagement

    TypeScript icon, indicating that this package has built-in type declarations

    0.0.0 • Public • Published

    Secure EcmaScript

    SES is a tool that allows mutually suspicious programs to share a single EcmaScript 5 compliant JavaScript context without interfering with each other. It does this by freezing everything that is accessible in global scope, removing interfaces that would allow programs to interfe with each-other, and providing the ability to evaluate arbitrary code in isolation.

    SES is a part of the Google Caja project. For JavaScript contexts that do not support EcmaScript 5, Caja depends on compiling JavaScript to a JavaScript subset with static verification and run-time assertions to maintain isolation. With EcmaScript 5, it is possible to run isolated code without a compilation step or run-time checks.

    Initialize SES by executing these scripts in order.

    • logger.js
    • repairES5.js
    • WeakMap.js
    • debug.js
    • StringMap.js
    • whitelist.js
    • atLeastFreeVarNames.js
    • startSES.js
    • ejectorsGuardsTrademarks.js
    • hookupSESPlus.js

    This is an example of initializing SES in a web page.

    <script src="logger.js"></script>
    <script src="repairES5.js"></script>
    <script src="WeakMap.js"></script>
    <script src="debug.js"></script>
    <script src="StringMap.js"></script>
    <script src="whitelist.js"></script>
    <script src="atLeastFreeVarNames.js"></script>
    <script src="startSES.js"></script>
    <script src="ejectorsGuardsTrademarks.js"></script>
    <script src="hookupSESPlus.js"></script>

    This is an example of initializing SES in Node.

    var FS = require("fs");
    var VM = require("vm");
    var source = FS.readFileSync("initSes.js");
    var script = new VM.Script(source);
    var f = cajaVM.compileExpr("console.log('hi')");
    f({console: console});

    Included is a binary runner under the name ses

    ses example/code.js


    npm i ses@0.0.0





    Last publish


    • warner
    • kriskowal
    • mhofman
    • erights
    • dckc
    • michaelfig