2013-06-12 2 views
0

Моя цель - создать специальный URL-адрес, который позволит кому-либо временно просмотреть «защищенный» вид. Фактически, если они покидают страницу, любая временная аутентификация, которая была предоставлена, должна быть удалена.Временная аутентификация через строку запроса

В основном проблема в том, что у меня есть контент на моем веб-сайте, который я НОРМАЛЬНО хочу быть защищенным, требуя логина. Тем не менее, я хотел бы иметь возможность предоставить временный доступ к определенному активу и не требовать входа в систему.

Должен ли я каким-либо образом использовать URL-адрес с строкой запроса, которая автоматически аутентифицирует пользователя? Или я должен создать отдельную страницу с этим ресурсом, которая вообще не требует аутентификации?

Редактировать: Я забыл упомянуть, что сгенерированная ссылка должна быть доступна для более чем одного человека. Другими словами, он не может ограничивать количество раз доступ, а скорее период времени или до тех пор, пока мы вручную не запустим его.

+0

показать, что вы сделали для этого? Мы здесь, чтобы решить вашу проблему, но не делать вашу работу. –

+0

Вы говорите об активе, как «файл PDF», или вы говорите о представлении как «render()», выпущенном Yii? –

+0

Проблема в том, что мое текущее решение неверно ... Но я использую php и jquery для ввода un/pw в форму для входа и отправки. Это, конечно же, дает поддельному пользователю доступ ко всему, к чему у кого-либо еще есть доступ. Это не вопрос простого исправления кода.Я не прошу кого-то сделать эту работу для меня. Вместо этого я прошу руководство в достижении моей цели. – vyce

ответ

0

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

Теперь, когда вы хотите предоставить кому-то такой разовый доступ, вы создаете такой токен и храните его в БД. Маркер может быть случайным хешем MD5, который вы генерируете, например. через md5(mt_rand().mt_rand()). Затем вы можете создать URL-адрес с этим токеном в качестве параметра и передать его пользователю.

Вы также можете активировать систему и добавить время вашего истечения в таблицу tokens. Тогда вы получите доступ только в том случае, если время истечения в будущем.

+0

Это выглядит многообещающе. Мне, вероятно, придется идти по пути истечения срока, хотя мы поделимся этим «токеном» с несколькими пользователями. Кроме того, доступ предназначен для представления, которое также содержит такие активы, как pdf-файлы, которые пользователь также может загрузить. – vyce

0

vyce: «Он должен первым быть на тонированном зрения, которая также содержит PDF файлы»

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

Эта проблема может быть решена путем:

    • Сохранение файла PDF под корень документа (или в другом месте, что сделано недоступным с .htaccess)
    • После вы определили, что вашему пользователю разрешен одноразовый просмотр в PDF-файле, вы обслуживаете его, как описано here
+0

Проблема заключается в том, что файлы PDF, а также визуализированный вид должны быть НОРМАЛЬНО защищены. Мы намеренно делаем исключение в течение короткого периода времени. – vyce

+0

Точно. Таким образом, лучшее место для PDF'is тоже имеет их «вне сетки». И затем обслуживайте их, если и когда пользователь имеет право. –

Смежные вопросы