我第一次编写大型 PHP 应用程序(带设置),并且想知道应该采取哪些权限安全预防措施。
setup.php 使用 fopen/fwrite 根据来自 setup.php 的 POST 数据生成 config.php。这可行,但似乎我无法写入 config.php,除非我将其权限设置为777
。
Config.php 基本上将包含 PHP 变量中的数据库凭据(将被 include()),这样保留好吗777
?
我想知道这是否可以或者我应该指示用户将权限改回 655 之类的值(我不确定)。
答案1
您应该将文件权限设置为完成手头工作所需的权限。对于安装,权限可能是 777;对于运行应用程序,权限可能是 644。
每次应用程序运行时,您都应该检查权限(关键文件和路径)是否符合您的要求,如果不是,则发出错误消息并停止应用程序运行。
答案2
许多 PHP 应用程序要求您在安装产品时将 config.php 设置为 777。我认为这完全可以接受,但应警告用户,安装完成后应将文件设置回 644。
另一个解决方案是让用户使用数据库设置对 config.php 进行硬编码。但这确实会使一些新用户的操作变得复杂。