> This seems a major cutback.and as such is really bad news.

It's definitely a nuisance, and part of a complex and deep discussion
about security topics that is pretty confusing. But there are lots of
mitigations, and I don't think the situation is as bad as you think.

> Does that mean that none of what we call transclusions these days will
> work in TiddlySpace?!?

The <<tiddler>> macro transclusion would continue to work. Do you mean
the way that a tiddler that is intended for transclusion can use
computed parameters to adapt itself to the tiddler in which it is
transcluded?

> Would it be reasonalbe to ask for an ability to allow users to turn on
> "insecure mode"?

Yes, perfectly reasonable, as long as them turning on insecure mode
doesn't also force any other spaces that include that space to also
switch to insecure mode. The plugin that I mentioned in my previous
post would work like more or less like that: install the plugin and
computed macro macro plugins will work for you when you visit the
space as a logged in user, and for guests who are not logged in.

> Why not simply handle transclusions like plugins instead... security-
> wise? Meaning: to require a standard tag indicating that something is
> a transclusion which only then allows for parameter
> evaluation ...otherwise not. There really should be no diffference in
> managing transclusions or plugins as both contain executable code.

Are you suggesting that computed macro parameters could be enabled on
a per-tiddler basis with a systemSomething tag? That's a reasonable
approach - we could then filter out that tag for safe transclusions.

> I understand the concerns, but I think it were better to advise users
> on their responsibility as to "know" what they include and to improve
> a user's ability to evaluate the reliability or stability of such
> content by seeing user votes on these things or knowing trustworthy
> authors, etc.

I think you're supporting the earlier point about social solutions
being more effective than technical solutions.

However, this business with the computed macro parameters is more
basic than that: it's tightening things up to gain us the ability to
reliably filter dangerous content. If we build the system such that
all wikicontent can potentially contain executable javascript we would
be inviting fun and games like today's twitter worm:

http://arstechnica.com/security/news/2010/09/twitter-worms-spread-quickly-thanks-to-blatant-security-flaw.ars

> I also understand that anything {{eval}} presents possible security
> issues. But, would you mind explaining precisely how malicious users
> can hijack another users space?

Alice constructs a space to store her study notes, and share them with
the rest of her class
Malevolent Bob constructs a space that claims and appears to be a
funky new theme with animated kittens
Alice includes the kittentheme space
Bob has secretly included code in the kittentheme space that
vandalises all the private and public tiddlers of the host space,
replacing every fifth word with "miaow"
Because Bob's code is running with the same authority as Alice's user
account, it can do anything it likes - including deleting content by
removing all revisions

There are endless examples of malicious payload that Bob might try
including shutting other uses out of a space or sending spam.

Social measures aren't always going to be enough: Bob might actually
not be malicious at all, but just have chosen a poor password so some
joker could steal his account.

> How is disallowing parameter evaluation not just but one of a of a
> myriad of (potential) security problems and therefore maybe not worthy
> restricting as there is plenty more, equally exploitable room for
> manipulation?

The vectors through with executable code can hide in wikitext are
actually pretty much limited to computed macro parameters and <script>
blocks. Of course, plugins can introduce new macros that do execute
code derived from wikitext, but at least those plugins themselves can
be filtered.

> Of course, no client-side manipulation should be able to compromise
> the server, but (potentially) only a user's data instead.

That's correct.

> This issue feels to me like - yet again - (maybe just a false sense
> of) security comes at the cost of utterly restricting degrees of
> freedom... which I most always tend to find rather unfortunate.

There is a solution which I haven't mentioned because I don't think we
currently have the resources to implement it. The idea would be to
manually parse and execute the computed parameter expressions in
JavaScript, and thus to restrict them to safe operations. There's a
project called Caja that does something similar on the server.

> So here is my vote for a policy that reads like this: "Put plugins and
> transclusions on an equal standing while letting users decide on how
> secure they need their spaces and contents to be (or user managers on
> the security level of members in the user group they are to
> manage ...if something like that should ever be developped.)"

Letting users decide is exactly what we're trying to do: but that
means letting users who include a space decide whether or not they
want to include executable code when they include a space. It can't be
decided by the users that are publishing spaces.

My apologies again about the timing and miscommunication of the change.

Best wishes

Jeremy

> Kind regards, Tobias.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "TiddlyWiki" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/tiddlywiki?hl=en.
>
>



-- 
Jeremy Ruston
mailto:[email protected]
http://www.tiddlywiki.com

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tiddlywiki?hl=en.

Reply via email to