【问题标题】:Managing user access to files管理用户对文件的访问
【发布时间】:2015-11-19 06:58:28
【问题描述】:

我正在寻找有关管理用户级文件访问权限的最佳方法的一些指导(最好使用 Perl,但也欢迎任何一般指导)。这是要求:

  • 我有用户上传文件,我希望确保这些文件的安全,这样除了上传文件的所有者之外,其他人通常都无法看到它们

  • 然后我希望能够向其他特定用户授予访问权限,以便他们可以只读方式打开文件

  • 我的所有用户都在 MySQL 数据库中进行管理

  • 我打算将上传的文件保存在文件系统中,而不是数据库中。我将在数据库中存储有关文件的元数据。

管理用户对文件的安全访问的最佳方法是什么?我可以在上传时重命名文件并将其保存在某个安全目录中。我可以按用户将所需的访问信息存储在数据库中。但是如何管理任何给定用户的访问权限?在访问文件时将文件复制到临时区域?

【问题讨论】:

  • 恐怕这个问题有点过于宽泛,无法有意义地回答。你可以这样做——当然可以——但魔鬼在细节中。
  • 澄清一下,特定用户应该只能访问特定文件。每个用户都有自己的允许访问文件列表。用户将看不到或无法访问所有其他文件。希望这是有道理的。
  • 确实如此,但仍然不是可以轻易回答的问题。 Stack Overflow 真正的目的是帮助程序员解决问题。不是从头开始编写解决方案。如果您正在尝试这个并且遇到了问题 - 这是一个询问它的好地方。
  • 好吧,我已经寻找了解决这个问题的最佳方法,但找不到任何有价值的东西。我的理由是,我在这个错误的方向上前进并浪费时间把一些没有意义的东西放在一起是没有意义的。因此,我的“一般”问题正在寻找一些我可以阅读的一般指导、参考资料等。我现在不是在寻找编码问题的建议。更多关于用户级文件访问管理的最佳方法的指导,尤其是使用 Perl。

标签: perl file security


【解决方案1】:

在四处挖掘并与一位程序员朋友交谈后(他很有帮助,说的不仅仅是“这不是微不足道的”),我得到了这个问题所需的指导。如果它将来可能对某人有所帮助,以下是概要:

  • 将文件上传到安全区域(用户无法直接访问)
  • 在数据库中保存元数据(例如,谁可以访问哪些文件)

访问时:

  • 根据数据库检查用户是否有访问权限
  • 使用 Perl 模块 File::Type 来确定 mime 类型
  • 使用 Perl 模块 IO::File 打开文件并使用适当的 mime 类型标头将其打印到用户浏览器

查看 CPAN 库以了解每个模块的详细信息。

效果很好! 而且实际上很微不足道:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    相关资源
    最近更新 更多