Re: SES prototype mostly working on latest Minefield, WebKit, and Chromium betas

"Mark S. Miller" <[email protected]>
Newsgroups gmane.comp.lang.javascript.ecmascript4.general,gmane.comp.lang.e.general
Message-ID <[email protected]>
On Mon, Aug 30, 2010 at 3:12 PM, Mark S. Miller <[email protected]> wrote:

> May crash your browser or page:
> http://es-lab.googlecode.com/svn/trunk/src/ses/index.html
>
> <http://es-lab.googlecode.com/svn/trunk/src/ses/index.html>Sources at
> http://code.google.com/p/es-lab/source/browse/trunk/src/ses/
>
> This has only been lightly tested and should **not** be relied on to have
> any security properties yet.
>
> The claim I working up to is that, on a securable ES5 implementation (<
> http://code.google.com/p/es-lab/wiki/SecureableES5>), these scripts create
> an SES environment (<http://code.google.com/p/es-lab/wiki/SecureEcmaScript>)
> implementing the object-capability security model and solving the safe
> mashup problem (<http://code.google.com/p/es-lab/wiki/SafeMashups>).
>
> Unfortunately, since there is not yet any full browser-based
> implementations of ES5, the present state of these scripts have various
> compromises that preserves their functionality but loses security. These are
> documented in the various files under "KLUDGE SWITCHES". With these kludges,
> from *extremely* light testing, it seems to work on the latest
> * Firefox Minefield 4.0b5pre,
> * Safari WebKit Nightly Version 5.0.1 (5533.17.8, r66356), and
> * Chromium beta 6.0.490.0 (3135).
> As soon as I get my VMWare installation fixed, I'll test on the IE9 preview
> as well. Opera 10.61.8429 does not yet implement Object.getOwnPropertyNames,
> so I can't even test there.
>
> This implementation of SES cannot run on ES5/3 (<
> http://code.google.com/p/google-caja/wiki/DifferencesBetweenES5Over3AndES5>)
> as is because of the lack of a client side eval. The current plan is to
> support SES5/3 directly, rather than porting these scripts to run on ES5/3.
>
> Like ADsafe, this is all implemented by a lightweight client-side library,
> with no server-side support need. Minified, the total size of the download
> comes in under 5k.
>

Minified and gzipped that is.



> Because it does not parse or transform code, aside from calls to "eval" or
> the "Function" constructor, the untrusted code runs at full speed and with
> no code expansion. Due to various transient problems, the safe eval is
> currently called "eval2" and "eval" remains unsafe.
>
> Interestingly, this library contains a surprising faithful emulation of
> WeakMaps on ES5 browsers that don't support WeakMaps directly (<
> http://code.google.com/p/es-lab/source/browse/trunk/src/ses/WeakMap.js#326
> >).
>
> --
>     Cheers,
>     --MarkM
>



-- 
    Cheers,
    --MarkM

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.