* bump *

Any feedback at all on this thread would be appreciated...

Thanks!

--Jesse


On Mon, Dec 7, 2009 at 4:48 PM, Jesse <[email protected]> wrote:

> I'm thinking the answer WRT the security token is to use a short lived
> token on the gagdet URL and swap that out for a longer lived token on the
> Shindig side -- but it still seems that there would be at least some small
> window on page load where the short lived token could still be sniffed/used
> by another gadget on the page for evil.
>
> As for the RPC token -- is that used for anything sensitive?  Do I need to
> be concerned about it being sniffed by other gadgets on the page?
>
> And finally -- I'm still trying to understand what I need to do on the
> Shindig side WRT locked domain support.  I see options in the shindig config
> file to enable locked domain, but it seems like most of the work would be on
> the container side in generating the iframe url's on unique domains...
>
> Please see the rest of this thread for more details.
>
> Any feedback at all on this would be appreciated...
>
> Thanks!
>
> --Jesse
>
>
> On Fri, Dec 4, 2009 at 10:46 AM, Jesse <[email protected]> wrote:
>
>> I've experimented a bit more with locked domain by just setting up my
>> container to prepend a counter to the iframe url for each gadget -- so I end
>> up with iframe urls which look something like:
>>
>> 1.gadgets.mydomain.com/gadgets/ifr?url=...&st=...&rpctoken=...&...
>> 2.gadgets.mydomain.com/gadgets/ifr?url=...&st=...&rpctoken=...&...
>> 3.gadgets.mydomain.com/gadgets/ifr?url=...&st=...&rpctoken=...&...
>> ...
>>
>> (I realize that the urls should stay consistent across page renders for
>> the same gadget, but for testing purposes I just wanted to get the gadgets
>> on unique domains)
>>
>> Everything seems to work just fine with this setup, and I do indeed see
>> additional sandboxing happening in the browser.  I tested this by doing some
>> experimentation in FireFox using FireBug -- before implementing the locked
>> domain changes all of these statements in FireBug execute successfully:
>>
>> cd($("remote_iframe_0").contentWindow);   //change FireBug's context to
>> the window of one of the gadgets
>> console.log(document.location);   //make sure the context is now what I
>> think it should be
>> var otherWindow = window.parent.frames["remote_iframe_1"];   //grab a
>> reference to the window of another gadget
>> console.log(otherWindow.location);   //log its location to be sure I have
>> a hold of the iframe I think I do
>> console.log(otherWindow.document.getElementById('someElement').textContent);
>> //log out the content of an element in the other gadget
>>
>> and as soon as I implement locked domain as described above, the last
>> statement fails with a security exception (as expected).
>>
>> But I'm still left with a few questions...
>>
>> 1) Even with the gadgets rendering on their own domains, I can still get
>> to the location property of other gadgets on the page, which means I can
>> parse out things like the security tokens and rpc tokens -- doesn’t that
>> mean one gadget can still spoof another?  How do other containers handle
>> this?
>>
>> 2) I'm still trying to understand what all the locked domain code in
>> Shindig is for...  I can see how some of it would be useful in my container
>> (like the logic in HashLockedDomainService that generates the iframe url
>> based on a hash of the gadget url) -- so is that why it’s there?  To be use
>> on the container side?  But then I also see methods in the
>> LockedDomainService interface that definitely seem Shindig specific like
>> isSafeForOpenProxy and gadgetCanRender, so I'm sure there must be more to it
>> that I'm not understanding...  I've spent a bunch of time digging in the
>> Shindig codebase and searching through the mailing list looking for tidbits
>> but haven’t made much progress so far...
>>
>> Any help or pointers would be greatly appreciated!
>> On Thu, Dec 3, 2009 at 9:55 AM, jss9920 <[email protected]> wrote:
>>
>>> I would like to start rendering my gadgets on unique locked domains but
>>> am getting a bit confused about where to start...
>>>
>>> Since the container generates the gadget iframe urls, it would seem that
>>> implementing locked domain would be a container side affair, but I see
>>> configuration options for locked domain support in the shindig container.js
>>> file and I also see associated Java classes that do a lot of locked domain
>>> work in the Shindig codebase (Java Shindig 1.0 release)...
>>>
>>> So is there actually work that needs to be done on both the container
>>> side and the Shindig side to enable locked domain gadgets?
>>>
>>> Any pointers on how to get started (even high level) would be helpful and
>>> much appreciated.
>>>
>>> Thanks!
>>>
>>
>>
>

Reply via email to