Drupal 7:如何限制对特定用户角色的文件访问

时间:2012-03-24 07:23:12

标签: security file drupal drupal-7 cck

我需要在Drupal 7上开发一个站点。我在CCK中有一些带有文件字段的内容类型。并且应仅授予对特定Drupal用户角色的这些类型的节点的访问权限。在任何时候,网站管理员都应该能够将这些节点设为“公共”或“私有”。

我可以使节点仅对特定用户角色可见,但这不够安全。如果匿名用户知道文件路径(www.mysite.org/hidden_​​files/file1),他可以下载它。

解决此问题最优雅的方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:9)

请在此处查看此文档:http://drupal.org/documentation/modules/file

具体来说,标题为“管理文件位置和访问”的部分讨论了如何设置私有数据存储(Drupal 7都支持它,只需配置它)。

要解释,创建一个文件夹,例如:

网站/默认/文件/私有

.htaccess 文件放入该文件夹中以防止通过网络直接访问该文件:

拒绝所有

(该文档声称以下步骤会自动执行上述步骤,但我没有测试过,但如果您跳过上述两个步骤,则可以节省一些时间)

登录Drupal的管理界面,转到 / admin / config / media / file-system ,配置私人URL并选择Drupal服务的私人文件作为默认下载方式。

为了定义对节点和字段的细粒度访问,您可以使用内容访问: http://drupal.org/project/content_access

您还需要编辑内容类型并设置文件/图片上传字段,以将上传的文件保存到私人文件而不是公共文件。

此时,节点和字段级权限将确定是否允许用户访问将通过菜单挂钩提供的文件,这些挂钩在提供文件之前验证凭据。

希望这有帮助。