Re: libseed-list Seed constrained context
- From: "Alan Knowles" <alan akbkhome com>
- To: "Alexandre Mazari" <amazari igalia com>
- Cc: libseed-list gnome org, tim hortont com
- Subject: Re: libseed-list Seed constrained context
- Date: Thu, 31 Mar 2011 15:51:21 +0800
looking at this it might make sense to make the engine api a bit more 'gobject like'
eg.
SeedEngine* seed_engine_new(argv, argc)
void seed_engine_set_context(SeedEngine*,...)
void seed_engine_set_group(SeedEngine*,...)
void seed_engine_import_enable(SeedEngine*,true|false)
void seed_engine_init(SeedEngine*)
we could then depreciate the seed_init_with_* methods.
Does that help you multiple instance concept?
Regards
Alan
--- On 28/Mar/2011, Alexandre Mazari wrote:
> Hi Alan,
>
> The main point of this patch is to reduce the surface of potential
> attack from within the JS context when executing arbitrary code (comming
> from the web, or a PDF file for example).
>
> That's why I decided to hide the importer altogether. I am not certain
> it has receive enough testing to be qualified as bulletproof.
>
> Also the 'imports' keyword is quite common in web libraries, causing
> eventual names clash.
>
> Depending on the use-case, the freedom granted to the JS context might
> vary, and allowing/forbidding the importation of whitelisted/blacklisted
> namespaces are definitely a tool in this palette.
>
> With the following security levels, I think we cover most of application
> writers requirements:
> - full context: can import any ns/module/script
> - restricted/constrained context: nearly what you propose, allow
> importation of everything but blacklisted ns/modules/scripts.
> - empty context: what's proposed in this patch: completely disallow
> importation, pushing *chosen* ns from C.
>
> Of course application devs input would be appreciated.
>
> What do you think ?
>
>
> Le lundi 28 mars 2011 à 09:42 +0800, Alan Knowles a écrit :
> > Looking at the code, I did wonder why you did not use whitelisting with the importer
> > eg.
> >
> > seed_importer_add_whitelist("Gtk");
> >
> > then just modify the importer to check if a whitelist exists and return an empty object if it the requested import is not in the whitelist..
> >
> > Regards
> > Alan
> >
> >
> > --- On 25/Mar/2011, Alexandre Mazari wrote:
> > > Hi Tim !
> > >
> > > > Bugzilla is down, so I'm sending you an email instead
> > >
> > > Yeah makes life harder. Need our daily bugs fix.
> > > >
> > > > isn't this functionality more or less what Seed's built-in Sandbox
> > > > module does?
> > >
> > > >From what I understand, and please correct me if I am wrong, both are
> > > related to security and isolation but they are orthogonal IMHO.
> > >
> > > The proposed patch allow the creation of an empty engine/context where
> > > the developer from C. This context disallow the js code of importing
> > > arbitrary namespace, object, script or module.
> > > The context is *selectively* filled by the C developer of *choosen*
> > > namespaces and objects.
> > > The main use-case is an application executing arbitrary JS code (coming
> > > from the web for example). Obviously, you dont want this code to import
> > > Gio and play with your filesystem.
> > >
> > > On the other hand, the Sandbox module's provides a mean to create
> > > isolated context from within JS.
> > > >From what I gather from the source, the sandboxed context is filled with
> > > the builtins and the import system.
> > > Also the module API is not public (in C).
> > >
> > > I do think both solutions answer to different problems, and each has its
> > > place in Seed.
> > >
> > > Thanks,
> > >
> > > Alexandre
> > >
> > >
> > > _______________________________________________
> > > libseed-list mailing list
> > > libseed-list gnome org
> > > http://mail.gnome.org/mailman/listinfo/libseed-list
> >
> > _______________________________________________
> > libseed-list mailing list
> > libseed-list gnome org
> > http://mail.gnome.org/mailman/listinfo/libseed-list
[
Date Prev][Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]