【问题标题】:How to make sure a directory is safe from modifications如何确保目录不被修改
【发布时间】:2012-12-15 01:34:00
【问题描述】:

假设我有一个服务器上的目录和文件列表:

/stuff/
/other_stuff/
  index.php
/important_stuff/
  index.php
  script.php

在 script.php 脚本中,如何确保important_stuff 目录 (__DIR__) 中的文件不能被任何其他脚本修改?

【问题讨论】:

  • 操作系统是什么?无论哪种方式 - 设置 ACL 或 CHMOD 所需的权限。
  • 你试过.htaccess
  • 什么是目录和文件权限?您是否正在尝试预测特定的攻击?
  • 如果所有服务器脚本都由同一个用户 ID 运行,则无法相互保护。
  • @Barmar 和粉丝:给root用户一个脚本(例如),给每个人执行和阅读的权利,但没有写的权利。这个脚本如何不受非 root 用户运行的脚本的保护?

标签: php security


【解决方案1】:

假设您使用的是 linux,并且您能够更改文件所有权和权限。

php 由网络服务器用户(通常命名为 apache 或 www-data)运行。确保该用户无权写入您的重要资料文件夹。这可以通过将此文件提供给另一个用户来实现,但让 www-data(或 apache 或其他)组的成员可以读取它们。

【讨论】:

  • 例如:用户 www-data 在组 www-data、www-site1、www-site2、www-siteN 中。具体的 site1 位于 /var/www/site1 并递归地具有这些权限: 0640 和所有者/组是 www-site1:www-site1
【解决方案2】:

正确答案是关于所有权/权限。另外,如果您在 linux 下,请在 Google 上搜索“chattr immutable”。

但如果你想检查是否有变化,请使用md file function

【讨论】:

  • 不知道文件属性。 +1
  • @greg0ire 但它是不可移植的:在 *BSD 下我们必须使用 chflags
猜你喜欢
  • 2011-12-18
  • 2014-10-31
  • 1970-01-01
  • 2010-10-20
  • 2016-02-12
  • 2023-03-31
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多