Php

PHP伺服器端安全

  • July 19, 2022

我嘗試編寫新應用程序。使用者正在上傳他們的 php 腳本和儲存在 1 個文件夾中的所有腳本;

  • 一些文件夾

  • 另一個系統文件夾

  • 項目文件夾

    • 項目一

      • 索引.php
    • 項目 2

      • 索引.php
    • 項目 3

      • 索引.php
  • 索引.php

但這並不安全。例如;

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

它的問題。我想修復它如何處理伺服器端?我可以為每個項目創建特定使用者嗎?

您可以使用 Apache 中的 ITK 模組將使用者分配給 DocumentRoot。訣竅是配置 de home以匹配 DocumentRoot

  1. 創建使用者:adduser -m -d /home/app newuser
  2. 設置newuser密碼:passwd newuser
  3. 安裝 MPM ITK ( CentosInstallation )
  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. 重啟阿帕奇
  2. 如果您安裝了 FTP 服務,請使用新使用者通過 sFTP 將文件上傳到 FTP。

有時有必要允許newuser在會話目錄上寫入

引用自:https://serverfault.com/questions/1106025