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