将pdf隐藏到非注册用户

时间:2011-01-28 21:16:14

标签: php pdf login

我正在努力解决这个代码。我有一个网站,用户可以注册,并能够在登录时查看某些pdf。我的问题是,如何隐藏此文件以确保只有当前登录的用户可以订阅。我使用MySQL数据库跟踪我的用户,并且已经使用PHP进行所有服务器端编码。理想情况下,解决方案不会涉及用户必须再次登录或类似的任何事情。我不一定在寻找代码(虽然它总是很受欢迎:D),但是正确方向的任何颠簸都会很棒。

感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:4)

if(isset($_COOKIE['login']))
{
    header('Content-Type', 'application/pdf');
    readfile('secret/books.pdf');
    exit();
}
else
{
    include('login.php');
}

答案 1 :(得分:2)

保护用户URL的唯一方法是要求登录,这是您不想做的事情。 (显然,只要会话通过cookie或您正在使用的任何内容打开,该人就可以访问它。)

但请记住,一旦某人作为PDF的链接,他们就可以下载并将其提供给其他人。因此,在我看来,您应该只关注普通人无法猜到网址。

换句话说,简单地将PDF放在一个不可猜测的URL上是足够的安全性,因为一个人可以轻松复制PDF。

也就是说,如果你想稍微锁定它,你可以为每个用户提供他自己的PDF唯一URL。因此,如果有人复制了URL,你知道是谁做的。此外,您可能会在一段时间后过期网址。

该URL可以作为网址存储在数据库中 - > pdf查找。访问它不需要身份验证。

答案 2 :(得分:2)

两个想法: 1)将您的PDF存储在公共可读WWW文件夹之外,并将其包含在像ayush建议的经过身份验证的用户中 2)使用htaccess使用用户名和密码保护文件,并使用curl访问它。 cURL可以提供正确的凭据,而无需用户重新进行身份验证。