使用.htaccess托管保护成员区文件夹中内容的问题

时间:2013-02-28 02:16:45

标签: php apache .htaccess

好的,我们的专用服务器上有一个订阅站点。我们通过登录页面向访问该网站的付费会员提供内容。订阅由第三方记账者处理,他将新成员信息写入我们服务器上的数据库。成员身份验证使用MySQL数据库而不是.htaccess / .htpassword完成。原因是许多研究表明.htaccess / .htpassword方法是不安全的(通过纯文本传输用户信息)并且它无法让用户注销。因此通过MySQL进行数据库认证。一切都很好。

我们遇到的问题是,包含仅限会员内容的文件夹需要针对输入完整文件路径和文件名的任何人进行保护,以便访问下载内容,从而绕过我们的网站。

所以我们去了主机并写了一个自定义的.htaccess文件。我们必须为了时间而这样做,他们声称知道这种事情,所以我们雇用他们来编写.htaccess文件。

第一次迭代:它将每个用户登录重定向回index.php页面,而不是允许访问成员区域。但是,直接文件访问被阻止了。

第二次迭代:成员访问该成员的区域已经恢复,内容很容易直接下载。

第三次迭代:成功访问成员区域。内容访问被阻止以引导浏览器访问。但是,以前用于显示成员区域中每个下载文件的所有.jpg文件现在都是断开的链接。相关下载文件照片库中的所有缩略图现在都是断开的链接,无法查看它们所代表的较大图像。

结论:主持人退出了交易,说我们想做的事情无法完成。回顾一下,我们想要的是:

  1. 允许我们的注册会员使用我们的登录页面访问我们会员区。

  2. 阻止通过浏览器直接访问我们的内容。

  3. 允许所有.jpg图像与下载文件和缩略图库一起显示。

  4. 他们声称这不可能做到,我怀疑他们不知道该怎么做。当然,互联网上有许多订阅网站使用.htaccess文件来保护其内容。

    附加信息:我们拥有此域的SSL证书。这会导致问题吗?保护我们的成员区域内容的.htaccess不应该在成员的区域文件夹中而不是在根目录中(现在是这样,并且不会使.htaccess文件的编码不那么复杂吗?)?

    我很难相信我们要求做的事情是不可行的。

    请指教。任何和所有帮助将受到严重赞赏。

1 个答案:

答案 0 :(得分:0)

跳过.htaccess路线。在MySQL中存储“成员内容”的文件名。然后使用.php链接到“仅限会员”。 PHP只知道识别信息,但不知道实际的文件名。 EG MySQL索引#,存储日期,成员ID - 所有这些都可用于生成(并检索)您从未公开的唯一文件名。

我之前在Java中使用img标记的'src ='部分中的servlet完成了这个。我希望PHP提供类似的功能。