Ir para a pagina inicial dos Grupos do Google    LISTA PHP
Re: falhas de segurança em PHP (index sumindo)

Bruno Gross <brunogr...@gmail.com>

Não entendi bem tudo que vc escreveu, se vale de dica ou de dúvida.
Mas ressalto que se sua página sumiu e vc toma esses cuidados que vc
citou, liga pro suporte de sua hospedagem e xinga, desde a faxineira
deles até o Papa!

Quanto ao Path aparecer no topo do site, não vejo grandes problemas
nisso. Soluções como a sua não são a galinha dos ovos de ouro a
respeito de segurança. Ainda fico com a opção de problemas com a
hospedagem. Arquivos não somem dessa forma, nem código, nem porcaria
nenhuma!

Muito estranho isso...

On 22 mar, 11:06, "leogois" <camposgue...@gmail.com> wrote:

> Pessoal,

> Coloquei um site com linguagem PHP. Logo, me deparei com um grande
> problema: simplesmente um belo dia fui acessar o site e o código fonte
> da página index havia sumido. Isso já ocorreu por três vezes. Imagino
> que, por alguma falha de segurança, alguém está provocando isso.

> Para esclarecer melhor como contruir meu site, destado o seguinte:
>  arquivo index: index.php
> páginas internas: nome.php

> Aparece no browser: Ex.:http://www.meusite.com/index.php?page=artigos

> Coloquei um código em php para que todas as páginas internas abram no
> meio do site, mantendo o resto co conteúdo intacto: topo, menu e
> rodapé. Coloque o seguinte código no local onde inserir o conteúdo do
> centro do site: <?php if(isset($page)) { include
> ("$page.php"); }else{ include ("principal.php"); } ?>

> Minha pergunta é: o que pode está acontendo com o meu site e o que
> fazer para solucionar este problema?
> De acordo uma pesquisa que fiz, encontrei o código abaixo que tarvez
> contenha a solução. Mas, como inserir em minha página substituindo o
> código atual?

> "Um método seguro de incluir arquivos seria como o abaixo:

> <?php
> //cabeçalho do site
> $page = $_GET['page'];
> //para ter certeza que $page é alfanumérico.
> if(eregi("^[a-z0-9\-_\.]+$", $page, $regs)) {
>     $dir = "includes/"; //pode ser branco
>     $ext = ".php"; //.php, .html, .txt, whatever
>     if(file_exists($dir . $page . $ext)) {
>         include($dir . $page . $ext); //ou outro tipo de extensão se
> não for necessariamente um arquivo .php
>     } else {
>         echo '404 - Not Found'; //ou algo similar
>     }} else {

>     echo 'Naughty Naughty, very Naughty.'; /rodapé do site}

> ?>

> Então o link: index.php?page=about (assumiria about.php dentro do
> diretório 'includes').

> Se você sabe que o arquivo que será incluído não conte código PHP e
> sim apenas texto, então pode ser melhor usar readfile() ao invés de
> include()/require(), pois ambos irão executar qualquer código PHP que
> eles encontrarem algo que o readifle não irá.

> Usando um diretório separado para incluir arquivos, pode ser ótimo
> como uma forma de parar urls do tipo: "includes/http://blah.com/
> lala.txt" que não irá funcionar. Isso não é realmente necessário se um
> utilizar um ereg como filtro nas urls.

> Algumas pessoas nomeiam os arquivos que serão incluídos com a extensão
> '.inc', isso é muito perigoso, pois .'inc' não é interpretado como um
> código PHP pelo Web server e será visualizável no navegador como um
> texto na pagina. Isso parece algo banal, mas infelizmente muitos usam
> arquivos do tipo 'config.inc' que contem senhas de banco de dados etc,
> algo que torna o sistema muito inseguro...

> Arquivos que serão incluídos devem ter a extensão .php, pode ser
> exemplo.inc.php se você realmente quer que o nome contenha '.inc',
> algo que eu acho desnecessário.

> Você deve mantê-los fora do diretório root por uma pequena questão
> adicional de segurança."