On Thu, Jul 20, 2017 at 2:13 AM, Michael Kriegel
<[email protected]> wrote:
> Removing language features will introduce breaking changes. Removal is more
> like an agreement, not to use certain features, so it is the task of a
> Linter, which can check, that you do not use "bad things". Strict mode is
> another way, which disables a certain set of features, such that it becomes
> an error, when you use them. However, it is not very fine granular.

Linters help guide good-faith developers towards the good parts(tm) of
the language.
Keeping all the bad parts of the language around does impose an
ongoing cost though.

Obscure implementation-specific extensions and ancient rarely used
features can still be rediscovered and used to break out of sandboxes.
It's also the old, irregularly maintained code paths that are most
likely to allow an attacker
to attack underlying layers -- buffer overflows against C code via
neglected IDL binding
code.

As someone who has to keep current on the bad parts, I would
appreciate if there were
fewer of them.
Old code that has legitimate reasons to use ancient features was also
written and tested
when machines (modulo battery-constrained devices) were slower.
If old misfeatures can't be eliminated, I would prefer that old
features be reimplemented
in terms of newer features where possible even if that imposes a
significant performance
penalty since that results in fewer code paths close to the metal that
are rarely tested
openly.



> Maybe ES should introduce something like a configuration object, in which
> developers can enable / disable or in general configure features for their
> module in a fine granular way. Of course all features which exist at the
> time of introducing such a mechanism would have to be enabled by default...

This could reduce the attack surface for code injection attacks like XSS if done
at the realm level.  Expanding the configuration space also has
security consequences
though since you now have to test against all possible configurations or make
assumptions about likely or supported configurations.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to