Странный URL-адрес, добавленный "# =" [дубликат]


Возможный Дубликат:
Добавление игрового фреймворка #= для перенаправления после авторизации в Facebook через OAuth2?

Кто-нибудь еще видел, как это произошло?

Я создаю приложение Facebook canvas с использованием PHP SDK Facebook и некоторого Javascript.
Теперь, когда я провожу пользователя через поток аутентификации OAuth, я заметил, что URL-адрес в браузере автоматически добавляется с этим "#_=_", поэтому мой URL-адрес начинает выглядеть так это:

http://apps.facebook.com/xxxxxxxxxxxx/#_=_

И когда я перенаправляю на страницу профиля приложения, URL-адрес выглядит следующим образом:

http://www.facebook.com/apps/application.php?id=xxxxxxxxxxxx#_=_

Я перенаправляю с помощью

echo "<script type='text/javascript'>top.location.href='$appcanvasurl';</script>"

На URL-адрес холста и

echo "<script type='text/javascript'>top.location.href='$appprofurl';</script>"

Для страницы профиля приложения.

Так почему же это #_=_ добавляется?

Обновление:

Согласно эта ошибка на трекере , это сделано специально, и присвоение значения redirect_uri не меняет этого.

И в соответствии с официальным ответом facebook на эта страница (для просмотра поста необходимо войти в Facebook):

Это было помечено как "специально разработанное", поскольку оно предотвращает потенциальную уязвимость системы безопасности.

Некоторые браузеры будут добавлять фрагмент хэша из URL-адреса в конец нового URL-адреса, на который они были перенаправлены (если этот новый URL сам по себе не содержит фрагмента хэша).

Например, если example1.com возвращает перенаправление на example2.com, затем браузер собирается пример1.com#abc перейдет в пример2.com#abc, а содержимое фрагмента хэша из example1.com был бы доступен для сценария на example2.com .

Поскольку возможно перенаправление одного потока аутентификации на другой, можно было бы получить доступ к конфиденциальным данным аутентификации из одного приложения для другого.

Это смягчается добавлением нового фрагмента хэша к URL-адресу перенаправления, чтобы предотвратить такое поведение браузера.

Если эстетика или клиентская сторона поведение результирующего URL-адреса вызывает беспокойство, можно было бы использовать окно.местоположение.хэш (или даже собственное перенаправление на стороне сервера) для удаления оскорбительных символов.

Author: Community, 2011-09-20

1 answers

Смотрите Это: https://developers.facebook.com/blog/post/552/

Изменение поведения перенаправления сеанса

На этой неделе мы начали добавлять фрагмент #_=_ в redirect_uri , когда это поле оставлено пустым. Пожалуйста, убедитесь, что ваше приложение может справиться с этим поведением.

 16
Author: mjs, 2013-10-04 02:23:15