+1
I like using the (md5-)hash
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH9Ji9qCQnCrE98GgRArUAAJ96K3jCE6Evamjo5F9fAVFSokS/AQCdE4IK
vyP+BPNjaqEt7ei6DPAhP0s=
=6pVz
-----END PGP SIGNATURE-----
I'd rather it was the URL than the hash of the URL. The length
savings of a hash are relatively minor, and the readability problems
are going to increase as opensocial gets more complex and we deal with
things like gadgets changing domains and sharing privileges across
gadgets.
If we do decide to use a hash function, md5 would be a poor choice.
It's not broken for this particular use case, yet, but it could be
soon. I think cryptographers are recommending sha256 for most new
applications.
Cheers,
Brian
Cheers,
Brian
For easy storage I always prefer something that's fixed length above
something that potentially is very long. Then again, containers need to
store the url anyway.
For easy referencing in urls, an md5-hash is much easier; it won't
require any url escaping;
http://www.hyves.nl/app/cc4a5adf71139d22781a757e93be0cbf looks better
than http://www.hyves.nl/app/http%3A%2F%2Fwww.example.com%2Fgadget.xml/
Can we think of any usecase where one has the id, and needs the url, or
where someone is willing to give out the id, but not the url?
>
>
>> Cheers,
>> Brian
>>
>
>
One of the main reasons to identify the application is security; you
only want a particular gadget to pull in user information, not any
gadget that user has added.
Exaggerated example: let's say that I have a banking app and a music
app on my page. The banking app should have permission to view my
account balance, but not the music app. The only way the bank's
servers can tell the difference is the application ID.
>
+1 for using the URL. This also helps with phishing because I'll know the MyBank app is written by www.mybank.com and not www.evilphisher.com. If the URL is hashed, this info is hidden.
-LaneOn Thu, Apr 3, 2008 at 1:28 PM, Graham Spencer <g...@google.com> wrote:I agree with Brian, my vote is for using the URL and not a hash. Developers are free to hash the value they get from the container if they want something with a fixed size.
--gOn Thu, Apr 3, 2008 at 8:19 AM, Brian Eaton <bea...@google.com> wrote:
I'd rather it was the URL than the hash of the URL. Â The length
On Thu, Apr 3, 2008 at 1:30 AM, Kevin Brown <et...@google.com> wrote:
> url size could be a concern (especially if the original id is being passed
> in a security token through the renderer), so we could also consider a hash
> of the url (md5 or sha1 in base16, perhaps) as the id. This has the same
> basic properties as above, at the slight cost of readability.
savings of a hash are relatively minor, and the readability problems
are going to increase as opensocial gets more complex and we deal with
things like gadgets changing domains and sharing privileges across
gadgets.
If we do decide to use a hash function, md5 would be a poor choice.
It's not broken for this particular use case, yet, but it could be
soon. Â I think cryptographers are recommending sha256 for most new
applications.
Cheers,
Brian
On Thu, Apr 3, 2008 at 2:01 PM, Lane LiaBraaten <llia...@google.com> wrote:+1 for using the URL. This also helps with phishing because I'll know the MyBank app is written by www.mybank.com and not www.evilphisher.com. If the URL is hashed, this info is hidden.
I'm not sure this makes a huge amount of difference unless we're talking about a container that makes the urls explicitly visible to end users (which is definitely not what i'm proposing). The only people who would be able to take advantage of this are the tech savvy enough who are more likely to avoid the phish in the first place.
This change would primarily benefit developers.
In theory, sure. In practice people are going to notice the bouncing
frogs on their screen before they read the URL bar.
On Thu, Apr 3, 2008 at 2:07 PM, Kevin Brown <et...@google.com> wrote:On Thu, Apr 3, 2008 at 2:01 PM, Lane LiaBraaten <llia...@google.com> wrote:+1 for using the URL. This also helps with phishing because I'll know the MyBank app is written by www.mybank.com and not www.evilphisher.com. If the URL is hashed, this info is hidden.
I'm not sure this makes a huge amount of difference unless we're talking about a container that makes the urls explicitly visible to end users (which is definitely not what i'm proposing). The only people who would be able to take advantage of this are the tech savvy enough who are more likely to avoid the phish in the first place.
Fair enough.
Â
This change would primarily benefit developers.
Developers often want to create URLs to their app, which includes the appid (for example, on orkut this is http://sandbox.orkut.com/Application.aspx?uid=YYYYYY&appId=XXXXXXXXX) so the app is visible to users, right?
-Lane~Kevin
-LaneOn Thu, Apr 3, 2008 at 1:28 PM, Graham Spencer <g...@google.com> wrote:I agree with Brian, my vote is for using the URL and not a hash. Developers are free to hash the value they get from the container if they want something with a fixed size.
--gOn Thu, Apr 3, 2008 at 8:19 AM, Brian Eaton <bea...@google.com> wrote:
I'd rather it was the URL than the hash of the URL. Â The length
On Thu, Apr 3, 2008 at 1:30 AM, Kevin Brown <et...@google.com> wrote:
> url size could be a concern (especially if the original id is being passed
> in a security token through the renderer), so we could also consider a hash
> of the url (md5 or sha1 in base16, perhaps) as the id. This has the same
> basic properties as above, at the slight cost of readability.
savings of a hash are relatively minor, and the readability problems
are going to increase as opensocial gets more complex and we deal with
things like gadgets changing domains and sharing privileges across
gadgets.
If we do decide to use a hash function, md5 would be a poor choice.
It's not broken for this particular use case, yet, but it could be
soon. Â I think cryptographers are recommending sha256 for most new
applications.
Cheers,
Brian
--
So, do we want the spec to actually enforce this? The only place I can
actually find it being used is in the makeRequest function. We pass an
app id to developers, and we would change the spec to say this:
* - opensocial_app_id The url of the xml file for the current app
Is there anything else we need to do here or is it just the
makeRequest function?
Thanks.
- Cassie
As i understand the open social API at the moment, there is nothing in
it that deals with these types of scenarios.
As it stands now, a simplest Open Social compliant site could just
have a text field where people past a url to the gadget.xml, the site
stores this url and renders it on the person's page. Now in that
scenario, were you to change the URL in any way shape or form, the
renderer would simply give you a 'Failed to retrieve gadget content'
error.
A few musings on the possibilities:
So say you wanted to solve that situation by having an meaningful app
id, you would need to have a central registry (which is not at all a
part of open social at the moment) to track this app id and what URL
belongs to it, which means someone would have to build and maintain
the infrastructure for it, and take responsibility for it ... and
others (from other geographical and thus political regions) would have
to depend on that registry to be able to function ... plus all current
and future social sites would have to connect to this service to be
able to become an open social container.
To me that sounds like a lot of work and with a few possible thorns
attached too
Alternate scenario's i could think if would be to have the app id be
only meaningful inside of one social site, but that would mean gadget
creators would have to contact each social container, and that could
be thousands at some point for all you know, to get their url's
updated.. Not a workable situation either.
The alternative of letting a gadget set it's own ID in its meta data
(xml) is even more scary, because it would mean any gadget could spoof
the app id, and get to information it has no business getting too.. So
that has to be the worst possible solution :)
The only semi workable solution i could think of is to mimic HTTP a
bit (301: Moved Permanently) and allow for a 'Moved to this new URL'
field in the gadget spec, and specify that on receiving this code, the
social container should update its database and use the new URL. (And
the gadget renderer would need some form of communication / write
access to the social container ... which are probably 2 very separate
systems), so that would complicate things a bit, especially for the
write access to the container bit, but somewhat viable i guess..
Now it's well possible i missed something obvious here, or other
possible solutions, however none of the things i was able to think of
would be a 'minor change' as far as the impact on the specification,
and current implementation goes.
-- Chris
~Paul
Maybe containers should provide some mechanism to alias one gadget URL
to another? For example, the app owner could ask the container to
direct users of their old gadget to their new gadget. That works even
if the app owner loses control of their domain name.
Cheers,
Brian
Now the only 'automatic' way i can think of (and non automatic could
just not be dependent on with thousands of potential open social
containers), is by including this in the meta data of the gadget ...
which means the gadget renderer is the only system that actually sees
this field, and somehow have to prod the social container site to
update it's db .. possible, but quite a change in the spirit of the
spec (so far open social reads and provides services, and doesn't
actually go and write things to the social container, that would open
up a whole new game :))
-- Chris
Problem #1: what should the app_id be? how should the gadget server
tell the gadget home server what gadget is making a request?
Problem #2: how should applications rendering on the gadget server be managed?
Cheers,
Brian
We are all familiar with the solutions:
- Forward mails to our new address if the old one is still under our control.
- Otherwise, inform everyone of the new address and learn to not give
out school/corporate/other temporary email again.
The app id updating problem can be solved analogically -- use a redirection URL.
I don't think it's too much of a burden to require developers to keep the same URL. Particularly if gadget developers think about permanent URLs ahead of time, how often will the gadget URL really need to be changed in practice? You can always keep old domain names, use rewriting rules, use HTTP redirects, etc.
http://USER.hi5.com/friend/apps/entry/HOST/PATH/FILE.xml
which corresponds to http://HOST/PATH/FILE.xml
so far this is working well, and allows the app dev to have well known
endpoints, and get some SEO terms in the URL. For app requests etal
we use an internal appId.
We have had a couple of requests for renames, which we've done
manually so far.
As far as caching etc, approved apps are only updated at the
developers requests. We cache the app xml contents, which removes
that particular burden from the developer.
> > > On Mon, Apr 14, 2008 at 3:29 PM, Brian Eaton <bea...@google.com> wrote:
> > >
> > > >
> > > > Hrm. We may be looking at two distinct problems.
> > > >
> > > > Problem #1: what should the app_id be? how should the gadget server
> > > > tell the gadget home server what gadget is making a request?
> > > > Problem #2: how should applications rendering on the gadget server be
> > > > managed?
> > > >
> > > >
> > > > On Mon, Apr 14, 2008 at 3:24 PM, Chris Chabot <cha...@xs4all.nl>
> > > > wrote:
> > > > >
> > > > > Well that's where i saw a potential problem (see my other somewhat
> > > > > muzing email), right now it's setup in a way that the gadget
> > > > rendering
> > > > > is a separate system from the container site, for good reasons
> > > > since
> > > > > they really do different things.
> > > > >
> > > > > Now the only 'automatic' way i can think of (and non automatic
> > > > could
> > > > > just not be dependent on with thousands of potential open social
> > > > > containers), is by including this in the meta data of the gadget
> > > > ...
> > > > > which means the gadget renderer is the only system that actually
> > > > sees
> > > > > this field, and somehow have to prod the social container site to
> > > > > update it's db .. possible, but quite a change in the spirit of the
> > > > > spec (so far open social reads and provides services, and doesn't
> > > > > actually go and write things to the social container, that would
> > > > open
> > > > > up a whole new game :))
> > > > >
> > > > >
> > > > >
> > > > > On Apr 14, 2008, at 10:44 PM, Brian Eaton wrote:
> > > > >
> > > > > >
> > > > > > Maybe containers should provide some mechanism to alias one
> > > > gadget URL
> > > > > > to another? For example, the app owner could ask the container
> > > > to
> > > > > > direct users of their old gadget to their new gadget. That works
> > > > even
> > > > > > if the app owner loses control of their domain name.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> > >
> >
>
> You received this message because you are subscribed to the Google Groups "OpenSocial and Gadgets Specification Discussion" group.
> To post to this group, send email to opensocial-an...@googlegroups.com
> To unsubscribe from this group, send email to opensocial-and-gadg...@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/opensocial-and-gadgets-spec?hl=en
> -~----------~----~----~----~------~----~------~--~---
>
--
Paul Lindner ||||| | | | | | | | | |
lin...@inuus.com
Step 1: Set up a 301 Permanently Moved response with a Location: header to the new location. Gadget servers would then pick this up lazily and re-map the URL internally. Leave this redirect up for at least 30 days before moving to step 2. (Can have an alternative <link> element in the gadget xml to point to the new location as well, for response-challenged hosting environments.)
Step 2: Set up a 410 Permanently Gone response at the old location for a minimum of 60 days. Gadget servers that see this should erase the gadget from their memory -- it's going bye-bye.
@MySpace our apps aren’t in this continually pull and render model, but we are committed to supporting app metadata xml.
Â
I agree with the general proposal of http status codes for change of URI, but in this minute sitch can we not expect developers to take action (as they already have to change their URI) and push their updated URI out to OS providers?
Â
Would a simple online registry of OS Providers allow gadget/web part developers to push this change out?
Â
~Paul
Â
From:
opensocial-an...@googlegroups.com
[mailto:opensocial-an...@googlegroups.com] On Behalf Of Bruno
Bowden
Sent: Tuesday, April 15, 2008 4:23 PM
To: opensocial-an...@googlegroups.com
Subject: Re: Standardizing app id.
Â
Â
Step 1: Set up a 301 Permanently Moved response with a Location: header to the new location. Gadget servers would then pick this up lazily and re-map the URL internally. Leave this redirect up for at least 30 days before moving to step 2. (Can have an alternative <link> element in the gadget xml to point to the new location as well, for response-challenged hosting environments.)
Hi Brian,
Working on OpenSocial for Hyves, we ran into a security issue; I would
like to know whether it has been considered and what the best solution
would be.
I believe that many containers have the same businessrules as we, where
the viewer is by default not visible to the gadget on the profile view,
but is visible in the canvas view. The profileview gadgets with us would
be on
http://claude.hyves.nl/
and a canvas view gadget might be at
http://claude.hyves.nl/gap/1234/abcd
What if a gadget in profile view opened a hidden iframe to
http://claude.hyves.nl/gap/1234/abcd. The gadget in the canvas iframe
would then be able to see the viewer (and for instance log who would
visit your profile).
You could even do this from external pages: On my external blog I have
an iframe to the canvas page, and I can log which hyves members visit my
blog (as long as they have automatic login enabled).
Just wondering whether there is some sort of best practices solution for
this.
Thanks,
Reinoud
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkhbxMMACgkQqCQnCrE98GifAACfY2LWQpyfK/GgXt3NLj6x1W9h
cssAoLEEXQgkpm6TCHL8+ZsOOZe+f9Xh
=X81Y
-----END PGP SIGNATURE-----
gadgets.util.registerOnLoadHandler(onloadHandled);to execute when the iframe gets the focus()