Странный 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-адреса вызывает беспокойство, можно было бы использовать окно.местоположение.хэш (или даже собственное перенаправление на стороне сервера) для удаления оскорбительных символов.
1 answers
Смотрите Это: https://developers.facebook.com/blog/post/552/
Изменение поведения перенаправления сеанса
На этой неделе мы начали добавлять фрагмент
#_=_
в redirect_uri , когда это поле оставлено пустым. Пожалуйста, убедитесь, что ваше приложение может справиться с этим поведением.