AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1046743
Accepted
SirLouen
SirLouen
Asked: 2020-12-19 03:32:36 +0800 CST2020-12-19 03:32:36 +0800 CST 2020-12-19 03:32:36 +0800 CST

Protegendo sites contidos no mesmo diretório Apache

  • 772

Configurei todos os meus sites em diferentes /var/wwwsubdiretórios. Digamos que eu tenha 5 sites baseados em um CMS como o WordPress em /var/www/a.com, /var/www/b.com, /var/www/c.come ./var/www/d.com/var/www/e.com

Mas descobri que se eu der permissões de administrador a alguém em a.com, com certos plugins, eles podem obter acesso para rastrear /var/wwwe acessar um diretório diferente, digamos /var/www/c.com, portanto, eles podem obter acesso lendo, por exemplo, o arquivo de configuração ( wp-config.php) no caso do WordPress, porque em última análise, os plugins de listagens de diretórios fazem isso através do servidor web, que pode ter permissões de acesso de grupo.

A única solução que encontro é restringir o acesso total tanto ao convidado quanto ao grupo apenas neste arquivo, portanto, tecnicamente, ele será acessível apenas via SSH com acesso root, mas isso pode levar a erros, pois o servidor web não poderá acessar, a menos que o usuário do servidor web é o proprietário.

Isso me leva à conclusão de que há um risco inerente se você hospedar vários sites no mesmo host e eles executarem o mesmo daemon de servidor web. Mas deve haver uma solução, porque isso é feito por centenas de hospedagens na web em todo o mundo.

Alguém pode me recomendar uma solução para este cenário?

chmod apache-2.4
  • 2 2 respostas
  • 101 Views

2 respostas

  • Voted
  1. Maxence
    2021-01-09T02:20:59+08:002021-01-09T02:20:59+08:00

    A maneira mais simples, se você usa PHP e deseja bloquear qualquer script php para navegar em outros diretórios que não o do seu site atual, pode usaropen_basedir

    Mais informações: https://www.php.net/manual/en/ini.core.php#ini.open-basedir

    Edit: Para ser mais seguro como Gerald Schneider disse, adicione seu open_basedir na configuração do seu servidor web ou no seu pool php.

    Adicione um arquivo .user.ini na pasta do seu site e altere a permissão do proprietário para não permitir que seu servidor web ou php edite/exclua este arquivo.

    exemplo :/var/www/a.com/.user.ini

    Adicione algo assim:

    open_basedir = "/var/www/a.com:/tmp"

    Isso significa que, para PHP, ele não poderá analisar algo fora desses caminhos (/var/www/a.com e /tmp, necessários para upload).

    Verifique seu php.ini para habilitar este arquivo de configuração, para verificá-lo, execute a phpinfo()e verifiqueuser_ini.filename

    Mais informações: https://www.php.net/configuration.file.per-user

    Essas dicas protegem você apenas contra scripts PHP que usam funções PHP e você não precisa alterar nenhuma permissão de diretório, mas se alguém quiser executar um script em lote com PHP, ele pode analisar outras pastas, se você usar sftp, ftp ou qualquer outra coisa para navegue em seus arquivos, esta regra não funcionará.

    • 0
  2. Best Answer
    SirLouen
    2022-05-09T10:32:41+08:002022-05-09T10:32:41+08:00

    A solução foi usar pools PHP FPM para que cada diretório seja executado com um usuário diferente.

    Esqueci de escrever sobre isso antes, mas foi assim que resolvi meu problema e agora as permissões de arquivos fazem sentido porque posso ter um enorme controle sobre as permissões de proprietário, grupo e convidado, conforme pretendido no controle de permissão do sistema de arquivos clássico do UNIX.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve