Сеанс входа пользователя при отправке скрипта с внешнего сайта - PullRequest
2 голосов
/ 15 марта 2011

Я работаю над решением для букмарклетов с функциональностью, аналогичной Instapaper (функциональность букмарклетов, а не функциональность сайта).

Для моей первой версии букмарклета я отправил пользователя по адресу mysite.com/add.php?url=[url], который затем делал то, что хотел (добавлял URL в базу данных и т. Д.) В бэкэнде, пока пользователь вошел в мой сайт с тех пор (сеанс сохранен с помощью куки). Затем пользователю пришлось нажать кнопку «Назад», чтобы вернуться на исходный сайт. Это сработало как задумано.

Теперь я хочу позволить пользователю оставаться на исходном сайте (как это делает букмарклет instapaper), пока я делаю бэкенд в фоновом режиме, поэтому:
- Букмарклет теперь добавляет функцию javascript к исходному сайту
- JavaScript использует форму и отправляет URL-адрес mysite.com/add.php с URL-адресом в качестве переменной (add.php не изменяется)
- Я выводю статус из add.php в iframe, который появляется на оригинальном сайте

Это работает до тех пор, пока URL-адрес отправляется в add.php, а пользователь остается на исходном сайте, а его статус печатается в iframe, который я временно отображаю на исходном сайте.

Однако, с точки зрения сценариев, пользователь больше не входит в систему, даже если он / она находится при непосредственном доступе к mysite.com. Я использую эту систему входа в систему (http://www.evolt.org/node/60384).

Можете ли вы указать мне правильное направление? Дайте мне знать, если вам нужно больше информации.

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

Поскольку я заставляю это работать в IE, но не в Firefox или Chrome, я склоняюсь к выводу, что это связано с мерами предосторожности в отношении безопасности браузеров, и что я не смогу заставить его работать, используя только php-сессию.

Поэтому я придумала альтернативное решение того, чего я хочу достичь, и которым я хочу управлять вами.

Пожалуйста, прокомментируйте:

1) Когдапользователь регистрируется на моем сайте, я создаю случайный уникальный статический идентификатор (RUSI) для этого пользователя (т.е. не имя пользователя или хэшированный pwd)
2) я добавляю этот RUSI к коду букмарклета (то есть букмарклет может быть добавлен толькопока пользователь входит на мой сайт)
3) Когда пользователь нажимает букмарклет, мой скрипт проверяет, какое имя пользователя соответствует RUSI, и проверяет, присутствует ли это имя пользователя в моей таблице active_user (которая состоит из всех зарегистрированных пользователей).)
4) Если имя пользователя существует в таблице active_user, то букмарклет делает то, что должен, в противном случае я печатаю «пожалуйста, войдите» или подобное.

Каксказал, пожалуйста, прокомментируйте это решение, так как мне трудно понять, является ли это хорошим или действительно плохим подходом.Очевидным недостатком является, конечно, то, что пользователь, который узнает, что другие пользователи RUSI могут выполнять скрипт от его / ее имени, пока он / она вошел в систему.

Спасибо.

0 голосов
/ 16 марта 2011

На самом деле куки отправляются в файл add.php? Вы проверяли какие-либо инструменты разработчика или пробовали `var_dump ($ _ COOKIE)"?

В каких браузерах вы его тестировали?

Исходя из того, что дано, я предполагаю, что браузер делает это в качестве меры предосторожности - в противном случае любой сайт может включать iFrame, и через JavaScript начните выполнять действия, как на другом сайте, без вашего знание.

Оглядываясь вокруг, я нашел этот потенциальный обходной путь , который конкретно относится к IE7, но я понятия не имею, относится ли он к вашей проблеме, так как не знаю, является ли это проблемой IE для вас .

...