Php 服务器端安全

Php 服务器端安全

我尝试编写新的应用程序。用户上传他们的 php 脚本,所有脚本都存储在 1 个文件夹中;

  • 一些文件夹
  • 另一个系统文件夹
  • 项目文件夹
    • 项目 1
      • 索引.php
    • 项目 2
      • 索引.php
    • 项目 3
      • 索引.php
  • 索引.php

但它并不安全。例如;

// in project1->index.php
<?php
include '../project2/indexphp'

这是个问题。我想修复它,我该如何处理服务器端的问题?我可以为每个项目创建特定的用户吗?

答案1

您可以使用 Apache 中的 ITK 模块将用户分配给 DocumentRoot。诀窍是配置 de与 DocumentRoot 匹配

  1. 创建用户:adduser -m -d /home/app newuser
  2. 设置newuser密码:passwd newuser
  3. 安装 MPM ITK(Centos安装
  4. 配置虚拟主机(这是基本配置)
<VirtualHost *:80>
    ServerName app.example.com
    DocumentRoot /home/app
    ErrorLog /var/log/www/app.error.log
    CustomLog /var/log/www/app.requests.log combined
    <IfModule mpm_itk_module>
        AssignUserId newuser newuser
    </IfModule>
    <Directory /home/app>
        Require all granted
        AllowOverride all
    </Directory>
</VirtualHost>
  1. 重启 Apache
  2. 如果您安装了 FTP 服务,请使用新用户通过 sFTP 将文件上传到 FTP。

有时需要允许newuser在会话目录中写入

相关内容