Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alaerte Gabriel

Protegendo o arquivos php contra acesso direto.

Recommended Posts

Bem pessoal, muitas pessoas / programadores iniciantes, costumam fazer um arquivo de configuração com o banco de dados, e deixa-los expostos a acesso direto em um diretório e/ou na raiz do site.

 

Para evitar o acesso direto a tal arquivo, deve se fazer o seguinte:

$pagina="pagina.php"; //aqui colocariamos o nome da pagina.
if(basename($_SERVER["PHP_SELF"])=='$pagina'){
die("<script>alert('Sem permição de acesso !')</script>\n<script>window.location=('index.php')</script>");
}
Basta colocar isso no arquivo e colocar o nome do mesmo na variável página.

com isso fica restrito o acesso ao arquivo de configuração via URL, se alguém tentar fazer isso:

 

http://www.site.com.br/pagina.php

 

imprime no navegador a mensagem de acesso restrito e em seguida a pessoa é redirecionada para a página inicial.

2º Método:

if (eregi("pagina.php", $_SERVER['SCRIPT_NAME'])){
die ("<script>alert('Sem permição de acesso !')</script>");
}
Espero que ajude, isso é para aqueles que estão começando agora, e não tem noção de segurança. http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa dica! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Três observações:

 

1. Em vez de definir o nome do arquivo em cada um deles, pode-se usar a constante __FILE__. Use basename() também. Isso facilita e, se precisar alterar o nome de um arquivo, não é necessário editar o valor da variável. ;)

 

2. Se o suporte a JavaScript estiver desabilitado, a página ficará em barnco. Seria interessante redirecionar, com header(), para uma página de erro, ou mesmo para a index.

 

3. No PHP 6, algumsas funções aliases serão extintas. Receio que die() seja uma delas, mas é uma suposição minha; nada confirmado. Seria interessante mudar para exit().

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa dica! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Três observações:

 

1. Em vez de definir o nome do arquivo em cada um deles, pode-se usar a constante __FILE__. Use basename() também. Isso facilita e, se precisar alterar o nome de um arquivo, não é necessário editar o valor da variável. ;)

 

2. Se o suporte a JavaScript estiver desabilitado, a página ficará em barnco. Seria interessante redirecionar, com header(), para uma página de erro, ou mesmo para a index.

 

3. No PHP 6, algumsas funções aliases serão extintas. Receio que die() seja uma delas, mas é uma suposição minha; nada confirmado. Seria interessante mudar para exit().

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Opa !...

 

Claro Beraldo !, estás correto !

 

Ai o pessoal, juntamente com as suas dicas, vão adaptando ai as suas necessidades !

 

Abraço. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sou novo no ramo...

 

Tem como explicar melhor como eu aplico esse comando...

 

 

Vou explicar um pouquinho...

 

Mexo com Servidor de MuOnline... Mas prefiro fazer meu própio site, muitos pegam na net , mas vem com varios bugs (causados de propósito).

 

Tenho que preoteger o maximo minhas páginas pois se não pelas paginas eles acabam deletando o banco de dados...

 

 

Perguntas;;

 

minhas páginas aparecem em um inframe... tem como fazer um jeito que elas só abram no infra,me preincipal...

 

exemplo:

 

www.site.com.br/index.php > aki vai aparecer tudo do site...

 

www.site.com.br/cadastro.php > vaia aparecer a pagina cadastro fora do inframe... como evitar isso ?

 

 

Outra:

 

eu as dividi.. tipo:

tem a pasta do site "www", dentro desta pasta tem a pagina principal, a da configuração.. + uma pasta inclui e uma modulos...

o corpo do site fica em modulos.. e em inclui fica as css, arquivos para proteger o site etc... como colocarum link na pagian principal que não pecise de colocar assim :

exemplo:

 

incio >(vamos supor que seja um link ai coloco para redirecionar para: modules/cadastro.php) tem como colocar logo tipo

 

inicio >(sei la vamos supor index.php?de=cadastro) isso foi só um exemplo não sei como funciona direito esse sistema...

 

 

 

Vlra e um abraço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Negociante pra sua sorte também crio sites para servidores de MUOnline, e te digo que é melhor fazer mesmo pois, já detectei várias falhas orríveis em sites ue tem prontos por feitos com gambiarras.

 

Enquanto a proteger suas páginas você deve incluir isso no início de seu documento:

 

if (eregi("pagina.php", $_SERVER['SCRIPT_NAME'])){
die ("<script>alert('Sem permição de acesso !')</script>");
}
porém ninguém conseguirá abrir sua página.

 

quanto aos iframes, diria que tem como fazer isso com JS (JavaScript), e não sei como fazer ainda.

 

enquanto ao seu menu, não á problemas em le ficar assim, mais de qualquer forma pra você mudar para aquele estilo vai te dar muito trabalho, é melhor deixar como está.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa cara que legal...

 

Muito obrigado mesmo.....

 

Como sou fraquinho no assunto ainda vou ter várias dúvidas direto..rsrsrsr

 

Se estiver ao teu alcanse e poder me ajudar seria uma boa...

 

não costumo deixar o msn porque bom mesmo é postar no forum para tirar dúvidas de outras pessoas tbm...

 

mas se quizer adicionar fica a tua escolha

 

reenan_18@hotmail.com

 

if (eregi("dad.php", $_SERVER['SCRIPT_NAME'])){

die ("<script>alert('Sem permição de acesso !')</script>\n<script>window.location=('index.php')</script>");

}

 

Ficou show

 

vlw e Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu site está desta forma, e mesmo assim, afirmam que continuam invadindo, pode ser verdade?

 

CODE
<?PHP

if (eregi("includes/clean_var.php", $_SERVER['SCRIPT_NAME'])) { die ("Access Denied!"); }

function clean_var($var=NULL) {

$newvar = @preg_replace('/[^a-zA-Z0-9\_\-\.]/', '', $var);

if (@preg_match('/[^a-zA-Z0-9\_\-\.]/', $var)) { }

return $newvar;

}

?>

 

Se tiver algo errado, poderiam me ajudar a corrigir para eu ter total segurança nas minhas ´páginas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu deve colocar esse script na própria página que se quer protejer colega.

Usando esquema de include...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode utilizar include da forma que está ai, pois ele teria que ter uma página para cada include que ele tivesse que dar, o melhor a fazer é uma função pra passar o nome da página para o script que bloqueará a mesma, então ficaria assim:

 

bloquear.php

<?php
function trancar_pagina($nome){
if (eregi("$nome", $_SERVER['SCRIPT_NAME'])){
die ("<script>alert('Sem permição de acesso !')</script>");
}
}
?>

página a ser protegida:

index.php

<?php
require('bloquear.php');
trancar_pagina('index.php');
?>
...
Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, ela será uma function que será chamada com um include na pág onde você quer a proteção.

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, sou novato e tenho uma dúvida, eu queria saber como faz para restringir as paginas para que apenas os usuários cadastrados tenham acesso, por exemplo, irei disponibilizar os dados das apólices de seguros de uma empresa na internet, mas apenas o cliente tem acesso as suas informações..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, sou novato e tenho uma dúvida, eu queria saber como faz para restringir as paginas para que apenas os usuários cadastrados tenham acesso, por exemplo, irei disponibilizar os dados das apólices de seguros de uma empresa na internet, mas apenas o cliente tem acesso as suas informações..

Faça um sistema de login

 

Há diversos artigos e scripts prontos sobre isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há uma forma mais simples, se você tiver colocado este arquivo em um diretório exclusivo para conexão com banco de dados, basta proteger este diretorio. Um página no seu site que esteja em pasta diferente desta conseguira acessar o arquivo sem precisar autenticação. Utilizo isso com thumb e funciona!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. muito bom...

Tem um site de uma empresa grande que eu estava pra comprar um produto e deu um erro, aqueles de conexao.

Resolvi ver o caminho e me aparece o arquivo conexao.inc.... com senha, ip do phpmyadmin, usuario. tudo!

Acessei, tava la, abrindo tudo certinho... Entao informei por email ao webmaster... Acho que ele precisa acessar mais o imasters. hehe

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. muito bom...

Tem um site de uma empresa grande que eu estava pra comprar um produto e deu um erro, aqueles de conexao.

Resolvi ver o caminho e me aparece o arquivo conexao.inc.... com senha, ip do phpmyadmin, usuario. tudo!

Acessei, tava la, abrindo tudo certinho... Entao informei por email ao webmaster... Acho que ele precisa acessar mais o imasters. hehe

Abs

Exatamente... hehe

 

não se deve usar mais arquivos INC para gravar dados do mysql para conexão, pois fica visível e acessível via URL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.