Jump to content
  • 0
Guest

Permissões de Pastas [Gravar SOMENTE por FTP. Por HTTP, só leitura]

Question

Guest

Olá pessoal. Problema bem simples, mas infelizmente não achei solução em pesquisas convencionais.

 

Quero que uma pasta, em meu servidor de HOSPEDAGEM WEB - (Hostgator - Linux), permita apenas gravação via Cliente FTP(Filezilla por exemplo). E proíba qualquer tipo de gravação/alteração de arquivos via HTTP(Uploads, por exemplo). Acredito que seja necessário apenas aplicar um certo código de permissão de arquivo, mas infelizmente eu não sei esse código.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Uma alternativa é deixar a pasta com permissão 644 assim não vai conseguir subir arquivos via código.

Só se o script inserir permissão automaticamente.

 

Share this post


Link to post
Share on other sites
  • 0
Guest
Em 2017-5-20 at 12:43, magno barbosa disse:

Olá, basta você acessar a opção gerenciador de usuários no CPanel, e criar um novo usuário apenas com acesso FTP, na opção disco web marque apenas leitura.

 

Se não houver permissões HTTP, ninguém consegue acessar o site. O que eu precisava mesmo era o código que permite que internautas acessem o site, mas não consigam listar diretórios e também que nenhum script(nem mesmo os do próprio site) consiga "injetar arquivos" na raiz do site (apenas na pasta /imagens, será permitido).

A permissão 644, que o Leandro de Jesus sugeriu BLOQUEIA TODO O SITE, não abre nenhuma página.

A melhor que eu encontrei, para o servidor HOSTGATOR, foi a permissão 751 (Todos podem EXECUTAR, Somente o grupo e o Root podem LER, e Apenas o Root pode gravar.

Isso permitiu abrir o site NORMALMENTE, e IMPEDE que as pastas sejam LISTADAS. Mas ainda não testei se também impede que um script PHP do próprio site INSIRA arquivos dentro da raiz do site.

 

Estou tendo problemas de segurança. Não sei de que forma, mas ALGUÉM está conseguindo SOBREPOR meus arquivos e prejudicando minha imagem perante os meus clientes. Desconfio que sejam concorrentes.

Além de sobrepor o índice, eles colocam um arquivo chamado "d.php", que altera o conteúdo das imagens do site. Também colocam uma arquivo de nome "GOD.htm", entre outros.

 

Não sei como fazem isso (MySQL INJECTION ??? PHP INJECTION ??? Javascript ???). Mas fazem.

 

Por isso estou procurando uma maneira que o servidor rejeite qualquer gravação, inclusive do próprio site, EXCETO, é claro, na pasta FOTOS/IMAGENS que é  o único local onde meus clientes precisam SUBIR arquivos de seus produtos. Até porque, se os "malandros" colocarem lá scripts(php,htm,html), não servirão para nada.

 

Isso seria uma solução provisória até que eu consiga entender onde está a falha de segurança nos meus PHPs.

Share this post


Link to post
Share on other sites
  • 0

Olá, então a sua questão é mais complexa do que pensa, e nesse caso precisa matar o mau pela raiz, vamos lá:

 

1° Escaneie o site usando : https://sitecheck.sucuri.net/;

2° Remova os arquivos apontados pela aplicação;

3° Notifique os erros via chamado para o Host e implemente as correções sugeridas.

 

Abraço.

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Henrique83vrdrhu47h
      Ao tentar baixar o arquivo com a extensão .EXE no site, os arquivos estão vindo como .GZ
      Ambiente
      Centos 7 64
      Apache 2.4.6
      Mudando o arquivo em /etc/httpd/conf/httpd.conf Eu já tentei usar cada um destes métodos abaixo, no entanto, sem sucesso (eu reiniciei o apache e deletei o cache do navegador em cada tentativa):
      1: SetEnvIfNoCase Request_URI .exe $ no-gzip não varia
      2: SetEnv não-gzip 1
      3: SetEnv mod_deflate off
      4: SetEnv no-gzip off
      5: No arquivo /etc/httpd/conf.modules.d/00-base.conf eu comentei: LoadModule deflate_module modules / mod_deflate.so
      6: Eu tentei apagar o arquivo, mas não funcionou. /usr/lib64/httpd/modules/mod_deflate.so
      Toda ajuda é bem vinda.
      Eu pesquisei muito, confiei em vários testes com soluções semelhantes, mas sem sucesso.
      Eu não sei mais o que tentar.
    • By brunoogm
      Pessoal tenho o seguinte codigo:
       
      <!DOCTYPE html>
      <html lang="pt-br">
          <head>
              <meta charset="utf-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1">
              <title>KADAM - Menu Digital</title>
              <link rel="icon" href="../imagens/img.png" type="image.png" />
              <link href="../css/bootstrap.min.css" rel="stylesheet">
              <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
              <link rel='stylesheet' href='https://use.fontawesome.com/releases/v5.7.0/css/all.css' integrity='sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ' crossorigin='anonymous'>
              <script src="../js/bootstrap.min.js"></script>
              
              <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
              <script src="sweetalert2.all.min.js"></script>
              <script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
          </head>
          <body>
              <div class="container theme-showcase" role="main">

      <?php
      session_start();
      include_once("php/conexao.php");

      $idPessoa = $_SESSION['id_pessoa'];
      $id_cliente = $_SESSION['id_user']; 
      $cont = $_SESSION['cont'];
       
      echo "ID cliente: ".$id_cliente."<br>";
      echo "Cont: ".$cont."<br>";
       
      $endereco = filter_input(INPUT_POST, 'endereco');
      $total = filter_input(INPUT_POST, 'Total');
      $metodopag = filter_input(INPUT_POST, 'pagamento');
      $troco = filter_input(INPUT_POST, 'troco');
      $cpfnota = filter_input(INPUT_POST, 'cpfnota');
      $query= "Select * from enderecocliente WHERE CodigoEndereco = $endereco";
      $resulta = mysqli_query($conectar, $query);
      $resultado = mysqli_fetch_array($resulta);

      //echo "Cod Endereco: ".$endereco."<br>";
      //echo "Nome Cidade: ".$resultado['NomeCidade']."<br>";
      //echo "Endereco: ".$resultado['Endereco']."<br>";
      //echo "Cep: ".$resultado['CEP']."<br>";
      //echo "numero: ".$resultado['Numero']."<br>";
      //echo "Cod Endereco: ".$resultado['Bairro']."<br>";
      //echo "Cod Endereco: ".$resultado['Estado']."<br>";
      //echo "Cod Endereco: ".$metodopag."<br>";
      //echo "Total: ".$total."<br>";

      $query ="UPDATE comanda SET ValorTotal= '$total', CodigoEndereco= $resultado[CodigoEndereco], CodigoMetodoPag = $metodopag, CodigoSituacao = '3' WHERE CodigoComanda = $cont";
      $resultado = @mysqli_query($conectar, $query);
      $query2 ="INSERT INTO pagamento  (CodigoComanda, CpfNota, CodigoMetodoPag, Troco, ValorTotal) VALUES ('$cont', '$cpfnota', '$metodopag', '$troco', '$total')";
      $resultado2 = @mysqli_query($conectar, $query2);
      $_SESSION['cont'] = 0;
      if (mysqli_affected_rows($conectar)) {
              
      ?>
      <script>
          swal({
              
              closeOnEsc: false,
              closeOnClickOutside: false,
              title: "Sucesso!",
              text: "Parabéns! Pedido enviado com sucesso!",
              icon: "success",
              button: "Ok",
                  }).then(function(){   
                      window.location.href = "../carrinho.php"; 
                      });
      </script>
                  
                  <?php } else { ?>
      <script>
          swal({
              
              closeOnEsc: false,
              closeOnClickOutside: false,
              title: "Erro!",
              text: "Ops! Seu pedido não foi enviado!",
              icon: "error",
              button: "Ok",
                  }).then(function(){   
                      window.location.href = "../carrinho.php"; 
                      });
      </script>
      <?php } ?>
       
       
      Testando em localhost esse código funciona normalmente onde os valores das sessions estão sempre disponíveis,
      porem agora que coloquei o site no ar essas sessões não estão mais apresentando valores, e é somente nessa pagina que isso acontece
      nas outras paginas elas apresentam seus valores corretamente...
       
      Alguém tem alguma sugestão, do que poderia ser ?
    • By JaCoBBluE
      Bom dia, amigos!
      Antigamente no site de um cliente, eram exibidas as fotos dos associados com base no ip do servidor (exemplo abaixo):
      http://189.45.207.60:3004/imagens/456631.jpg <img class="img-fullwidth" src="http://189.45.207.60:3004/imagens/<?php echo str_replace("\\\SVR-MTG\Imagens\Fotos\\", "", $json_str[$k]['out_foto']); ?>" alt="" width="165" height="219"> Foi encerrado o contrato com a empresa que desenvolveu o site antigo e desde então o link não exibe mais as imagens...
      Alguém pode me dar uma luz do que pode ser, se é necessário liberar alguma porta no modem ou outra coisa?
       
      Muito obrigado!
      Jeferson
    • By GiovannaRamos
      Olá pessoal,  gostaria de adicionar outra função ao meu botão 'Finalizar10()' ,  por enquanto ele faz a exportação dos dados da minha 'tabela' para um Excel e salva na pasta downloads do meu computador,  alguém sabe se teria alguma forma fazer esse arquivo gerado (Excel) ao invés de  fazer download, fazer o upload no caminho do meu servidor?
      function Finalizar10() { $(document).ready(function Finalizar() { $("#btnExport").click(function exportar (e) { e.preventDefault(); var blobData = new Blob(['\ufeff'+tabela], { type: 'application/vnd.ms-excel' }); var url = window.URL.createObjectURL(blobData); var a = document.createElement('a'); a.href = url; a.download = codigo; a.click(); }); }); }  
    • By Lisraf68
      Olá Pessoal!
       
      Estou tendo um problema com um link no site do meu cliente...esse link envia o usuário para pagina de acesso a um ambiente online do aluno... entretanto, o endereço para essa pagina só pode ser acessado quando os estudante estão fora do wifi da escola, do contrario eles não conseguem acessar pelo link que eu implementei na imagem que esta no site. Existe outro endereço para quem está conectado no wifi da escola, como sou iniciante, só sei que tenho que ter um código que quando o usuário clicar no link vai verificar se está conectado no servidor interno, se não, ele joga para o servidor externo, porem... Não faço a minima ideia de como estruturar esse código e linkar ele junto a imagem do site... se alguém puder me ajudar please!!! já pesquisei tudo e não consigo sozinha!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.