Drupal 7,只有注册用户可以在节点上查看但是任何人都可以通过链接,htaccess问题下载?

时间:2011-04-01 16:01:09

标签: drupal .htaccess permissions drupal-7 restriction

我有自定义内容类型的文件,我将该字段设置为私人下载。我也有字段权限,因此只有注册的用户(自动角色分配)才能查看节点页面上的下载链接。这样可以正常工作,管理员和特定角色下的用户可以看到要下载的文件但我的问题是任何人都可以获得链接即http://develop.ment/system/files/test/SuperSecret.txt的副本,并且可以在没有问题或需要注册的情况下关闭文件。 / p>

我是否需要一个模块来限制访问,甚至是.htaccess规则来停止正在访问/下载的文件,除非它是通过drupal节点的登录用户完成的?

通过drupal提供这样的限制似乎很愚蠢,但无论我设置什么权限,任何人都可以轻松下载文件。

所以伙计们,我错过了什么?看起来像.htaccess黑客会修复这个我只是不知道如何或从哪里开始。哦,文件存储在/var/www/vhosts/develop.ment/private中,因为Document Root实际上是develop.ment / httpdocs,这会影响问题吗?将私人下载存储在DocRoot之外似乎更安全。

2 个答案:

答案 0 :(得分:0)

您应该使用imce模块进行下载。它使你能够拥有你的私人文件(即文件哪个访问受到自动生成的.htaccess限制),而drupal本身并不是来自apache。

然后按角色配置IMCE以定义访问权限。

答案 1 :(得分:0)

在Drupal 7.1和7.2中确实存在严重的安全漏洞。请参阅SA-CORE-2011-001 - Drupal core - Multiple vulnerabilities中的文件模块中的访问绕过部分。

我的Drupal安装时间是7.2。我使用Content Access模块来控制对单个节点的访问。如果我设置访问控制以便节点只能由经过身份验证的用户查看,则附加的私有文件(在我的示例中为图像字段)也仅对经过身份验证的用户可见。匿名用户无法直接提供http://example.com/system/files/some-image.jpg来访问该文件。如果我让任何人都可以查看节点,则可以再次直接访问该URL。

您使用的是Field Permissions,而不是Content Access。我没有测试过这种情况,但是你可以升级到7.1或7.2,看看它是否能用完。