Управление доступом для пробной подписки
Мне было поручено создать систему, которая позволила бы кому-нибудь в нашей компании отправить электронное письмо со ссылкой на PDF-файл, который будет храниться на нашем веб-сервере. Получатель может перейти по ссылке, чтобы просмотреть рассылку, которую мы обычно продаем. Идея в том, что мы делаем это в течение трех месяцев, а затем посмотрим, хотели бы они продолжить и оплатить полную подписку.
Я создал регистрационную часть, но я пытаюсь найти лучшее решение для отправки электронной почты. Вот что я подумала, но мне интересно, есть ли у кого-то что-нибудь получше
1) При отправке электронной почты генерируйте общий код, который добавляется к URL-адресу. Использование будет следовать за URL, и он будет проверять нашу БД на "ок" записи и пропуск / отказ их доступа. Это кажется нормальным, но ссылку можно передать или даже загрузить на общедоступный сайт, где любой может получить доступ.
2) Чтобы расширить вышесказанное, я подумал, что, возможно, у меня будет такая вещь, как "одноразовый клик", когда, как только я узнаю, что ссылка нажата, она может истечь, поэтому любые последующие клики не будут выполнены. Недостатком является то, что если они нажимают, чтобы просмотреть и закрыть свое окно, все готово. Точно так же, если они нажмут, и их компьютер выйдет из строя до завершения загрузки, они также будут заблокированы. Я не знаю, есть ли способ (в PHP для меня), чтобы подтвердить, что загрузка файла завершена...
3) Я мог бы поместить файлы в каталог, такой как /trials/201009/r@nDomstr1n6.pdf, где файл загружен, а имя для ссылки случайное, поэтому будет трудно догадаться. Тогда я мог бы использовать.htaccess для защиты папки каждого месяца с другим паролем. Это может быть утомительным и, скорее всего, будет раздражать пользователей.
Мы не хотим заставлять их управлять своими собственными паролями, поскольку им необходимо войти в систему и запомнить еще одну учетную запись, что может препятствовать участию.
Спасибо за любые идеи или указатели. D.
3 ответа
Я бы сказал, сделать это со случайным кодом для аутентификации на адрес электронной почты, и истекает через 5 дней. Если вы ограничите доступ к ip, который первым попал в хеш URL, это тоже может сработать, но может принести пользу легитимным пользователям / клиентам.
В любом случае разрешите легитимным пользователям запрашивать новый код аутентификации, если это необходимо. Таким образом, даже если какие-то ваши ограничения доставят неудобства одному из ваших потенциальных клиентов, они не будут так же отмечены галочкой.
Наконец, учтите, что если им нравится PDF-файл и он хочет поделиться им, они, вероятно, просто поделятся этим файлом непосредственно и не будут беспокоиться о ссылке.
Другая возможность состоит в том, что, поскольку вы уже знаете адрес электронной почты этих людей, укажите для них конкретный URL-адрес в их ссылке на электронную почту.
Таким образом, пользователь может перейти по ссылке http://www.yourdomain.com/download_pdf.php?email=person@test.com
Сохраните таблицу со следующими данными для адресов электронной почты.
id email_addr read_date expire_date
Когда они нажимают на ссылку, проверяют, читали ли они ее раньше, и проверяют, не истек ли срок ее действия. Если это не так, подайте им файл в формате pdf, если он предоставил им страницу с надписью "Извините, срок вашей пробной версии истек../"
Если это их первый щелчок, установите значение read_date, рассчитайте дату истечения срока и установите его.
Или вы можете сгенерировать хеш или что-то еще и использовать хеш для идентификации пользователя вместо его адреса электронной почты.
Вы также можете настроить столбец загрузки в таблице и запретить им загружать его более двадцати раз или что-то в этом роде, увеличивая столбец загрузки каждый раз, когда они нажимают на ссылку.
Во-первых, осознайте, что здесь вы можете сделать очень много. Вы разрешаете пользователям загружать PDF, после чего они могут делать с ним все, что им угодно (юридически или иным образом). Таким образом, предотвращение передачи ссылки не обязательно помешает людям делиться или публиковать сам PDF.
Тем не менее, если вы хотите сделать его немного сложнее, вы можете сделать вариант вашего предложения №2, в котором вы устанавливаете некоторую задержку до истечения срока действия ссылки после ее нажатия. Вы также можете ограничить количество раз, когда ссылка будет обслуживать файл. Поскольку у людей разные скорости соединения, а я не знаю, насколько велики ваши PDF-файлы, я не могу точно сказать, какой должна быть задержка, если вы решите ее использовать.
Как я уже сказал, если кто-то решит поделиться файлом, он может легко это сделать.