Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 18
Nome: somzuada
Descrição do site: Rádio web
Contato:

Protegendo páginas PHP de acesso direto via url

03-12-2010 01:31

Este código protege páginas PHP de acesso direto via url.

<? if(basename($_SERVER["PHP_SELF"])==basename(__FILE__) ) exit("<script>alert('Nao permitido')</script>\n<script>window.location=('http://www.google.com.br')</script>"); ?>

1
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-12-2010 17:28

Muito útil ;-)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

01-06-2011 19:54

E se quisermos mostrar a página depois de logar e iniciar sessão?
1
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

01-06-2011 20:07

Logar no banco de dados?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

01-06-2011 20:10

Sim. No projecto que te mostrei, tenho o login e por exemplo, quero barrar o acesso via url do jogo que tinha a contagem dos segundos. Se quiser barrar o acesso se o login não for feito ... tipo http:// minhapasta/web/jogo1.php
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

01-06-2011 20:15

Eu costumo fazer assim:

na página para logar, vai ter lá os campos, geralmente login e senha, que são os mesmos cadastrados no banco de dados.

Na página que verifica os dados digitados, tem uma query, que tenta acessar o banco de dados

WHERE login='$login' AND senha='$senha'

Quando o login estiver correto, eu costumo criar 2 SESSIONS, um com o valor do login e outro com o da senha.

A cada acesso a uma página protegida, é usado esses valores da SESSION para uma tentativa de acesso ao banco de dados, se for positivo, permite a leitura da página, caso contrário, bloqueia o usuário.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

01-06-2011 20:16

Vou ter que fazer isso! Não tem um exemplo que me possa mostrar?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

01-06-2011 20:33

É praticamente o script desse post abaixo

Login-e-senha-com-session_1_4015.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

09-06-2011 19:13

Boa noite

Tenho outro pequeno problema:

O que preciso mesmo é o seguinte: tenho a pagina principal onde tenho um formulario de login. Ao logar com sucesso, vou para outra página e tenho acesso ao conteudo, como utilizador registado. O que eu queria era não deixar outro utilizador aceder a essa pagina sem fazer login...

Tipo, nos meus arquivos tenho o index.php que ao logar vai para alunos.php e se colocar na url http://pasta/alunos.php, consigo ver essa pagina mesmo não estando logado e eu não quero isso. Já testei várias formas de fazer isso e de facto não consigo entrar, mas também não entro mesmo logado.

Exprimentei o seguinte:

No index.php coloquei no inicio do documento: <? define('ACESSO_OK', 1); ?>

No alunos.php, coloquei
if (!defined('ACESSO_OK')) die("ACESSO DIRECTO NÃO PERMITIDO");

O que está errado?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

09-06-2011 19:25

Você tem que criar SESSIONS, para armazenar dados do usuário, e comparar com valores já gravados, de um banco de dados por exemplo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

09-06-2011 19:29

Já faço isso!!!

Esse trecho é parte do ficheiro que verifica os dados inseridos!
. . if ($dados==1) { session_start(); $_SESSION['login'] = $log; $_SESSION['password'] = $pass; if ($row['nivel'] == 1) { header ("Location: escola.php"); } else if ($row['nivel'] == 2) { header ("Location: alunos.php"); } } else { unset($_SESSION['login']); unset($_SESSION['password']); echo "<font color=red>Erro na autenticacao!<BR>Utilizador:<b><font color=black> " .$log. "</b></font><BR> ou <BR>Password: <b><font color=black>" .$pass. "</b></font><BR>INVALIDOS!<BR>ou utilizador nao esta activado. Tente novamente.</font>"; echo "<br>Volte para a <a href =\"index.php\">pagina de autenticacao </a><br>"; }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

09-06-2011 19:34

Em alunos.php você vai ter que ter outra validação, que vai comparar os dados da SESSION criada com as informações do banco de dados, se positivo, não faz nada, caso contrário redireciona para fazer o login.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

09-06-2011 19:36

Fiz assim:

if (empty($_SESSION['login']) || $_SESSION['login'] != TRUE) { // o utilizador não está logado, voltar para o login header('Location: index.php'); exit();

Acho que é isto!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

09-06-2011 20:06

Não sei ao certo se há vulnerabilidade nesse tipo de código. Isso porque só verifica se a SESSION foi criada, não tratando os valores armazenados. Costumo fazer com comparação ao banco de dados.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

03-07-2011 18:51

Boa noite WEB

Estou a testar essa função:

<? checapagina( basename(__FILE__) ); // Chama a funcao mas nao requere a pagina function checapagina($pagina_original){ $pagina_erro='../erro.php'; // Nome da pagina para onde sera direcionada a pagina que for bloqueiada $redirecionar=$pagina_erro.'?p='.$pagina_original; // Redireciona e manda uma variavel 'p' com o nome da pagina que estava sendo acessada $pagina_browser=end(explode("/", $_SERVER['SCRIPT_NAME'])); // Captura a pagina que esta sendo acessada no browser if($pagina_original==$pagina_browser){ exit(header("Location: $redirecionar")); // Para a execucao e redireciona } } ?>

Coloc na oagina que quero bloquear, o seguinte:

require_once("../bloqueia.php"); checapagina( basename(__FILE__) ); // Chama a funcao mas nao requere a pagina

O problema é que bloqueia o acesso de qualuqer forma. Seja por url, seja por link na página! Não era suposto bloquear o acesso digitado directamente no browser ou estou errado?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:16

A ideia do post é por exemplo, você tem um documento chamado teste.php, você não quer permitir que acesse esse arquivo pelo:
http://www.site.com/teste.php, mas, você pode acessar os dados desse arquivo por um include.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:27

Eu não quero que acessem a ficheiros do meu site, digitando no browser. Tentei com sessão, mas não é muito fiavel. Preciso arranjar forma de bloquear. Essa forma não daria para isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:37

Esse script do post faz exatamente isso. Com esse script, o arquivo fica bloqueado, por URL ou link, a única forma de obter os dados do arquivo que tem esse script, é por include.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:40

Eu coloquei na pagina que quero bloquear:

require_once("../bloqueia.php"); // Requere a página onde está a função
checapagina( basename(__FILE__) ); // Chama a função

Faço isso se for acesso directo.

Mas, se eu fizer login na pagina index.php e tiver sucesso, eu quero ser redirecionado para exemplo.php, mas ao colocar esse script, ele mostra a mesma mensagem de erro.

Faço o include como? Desculpe a ignorancia
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:45

Nesse caso teria que redirecionar para um outro documento, e nele teria um include para exemplo.php
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

03-07-2011 19:47

Não tou a entender :(

Já vi vários exemplos e preciso mesmo bloquear o acesso, mas sinceramente não tou a encaixar o lógica! :(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-07-2011 20:01

Acho que você está confundido o uso do script. Esse script serve para impedir que um arquivo seja acessado por link.

Esse script só deve ser colocado em arquivos que contenham dados de configuração, por exemplo, dados do banco de dados, arquivos de configurações, etc... Não deve ser colocado em arquivos que sejam páginas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

03-07-2011 20:16

Já entendi, testando :S. Não sou perito em php e me confundo. Para bloquear acesso como referi, por sessão é muito vulneravel. Tem outra forma de bloquear o acesso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Protegendo páginas PHP de acesso direto via url

03-07-2011 20:36

Depende do que pretende proteger, por exemplo, se um documento só deve ser usado a partir de outro, você pode usar o referer, para obter o documento de origem, ou seja, o documento anterior, e comparar, ai redireciona.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Mensagens: 87
Sexo: Masculino

Protegendo páginas PHP de acesso direto via url

04-07-2011 06:52

Tem algum exemplo usando o "referer" ?
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado