Hi folks,

I'm Yoichiro Tanaka as an architect of mixi Platform in Japan.
I report on a problem and a solution about a spoofing by Referer here:

Phenomenon:

If an user obtains a referer URL of an OpenSocial application,
the user can use the application as other's account
(= an application spoofing).

Replicate:

(1) An application developer writes a code for accessing to
an external web server by using <img> or <a> tag in an content
of an OpenSocial application.

(2) The application is used by users on SNS.

(3) The external web server is accessed from the application
of the user on user's browser by pressing the link or
displaying the image.

(4) As a result of accessing to the external server, an iframe's
src URL for the application is written in an access log of the
external web server as Referer.

(5) The external web server's owner or any users who can
know the URL can use the application by using the Referer
URL as the user specified by a security token included
in the URL.

Cause:

It is a cause that the st parameter is included in the src
attribute value of iframe.

Risks:

The user's individual information can be acquired by spoofing
as other users and using the application with the referer URL.

React:

It is a problem that the st parameter with the authentication
information is included in Referer. If the st parameter is
excluded from URL recorded as Referer, the spoofing can
be prevented.

Therefore, it is better that the Security Token value is passed
as URL Fragment.

NG: http://.../...?st=abcdefg&;...
OK: http://.../...?...#st=abcdefg

When main browsers transmits URL to the request header
as Referer, URL Fragment is not sent. Because the st
parameter comes to never include Referer that remains
in the access log of external Web server, the spoofing can
be prevented.

Can anyone mention or advice about this?

Thanks,
-Yoichiro

-- 
Yoichiro Tanaka
Email: [email protected]
Blog: http://www.eisbahn.jp/yoichiro

Reply via email to