Ir para conteúdo

Arquivado

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

Hugo Borges_120734

Como Esconder Todo O Link Apos O ?

Recommended Posts

Bom galera estou tentando otimisar a segurança de um pequeno sistema que montei.

Ele e todo em php.

 

A medida que o usuario vai navegando eu mando informações pelo link ficando assim. Exemplo:

 

www.sistema.com.br/index.php?user=3&edit=23&token=4je8448h4843r82hj320d

 

Queria que o sistema ocultasse tudo apos o ?, mas que os valores estivessem la.

 

Uma solução que achei foi criar uma pagina index.html com uma iframe. Assim o site sempre fica assim. Exemplo:

 

www.sistema.com.br/index.html

 

Independente da pagina que o usuário clica o link sempre fica assim. O problema e que se ele digitar no navegar outra pagina ele sai da iframe.

 

Tem alguma forma de eu bloquear isso forçando sempre o usuário a navegar através da pagina index.html

 

 

Alguém sabe como eu faço isso, ou alguma forma mais eficiente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prefira usar o método POST para informações que necessitem segurança. Poderia usar ainda o .htaccess pra mascarar essas informações na URL. Dessa forma, quando o usuário acessar www.meusite.com/alguma_pagina, ele na verdade está acessando www.meusite.com/index.php?id=1&outra_coisa=2&terceira_coisa=3. Poderia fazer isso usando o ModRewrite, caso sua hospedagem ou intranet seja em Linux. Veja um exemplo:

 

RewriteEngine On

RewriteRule ^alguma_coisa/?$ /index.php?id=1&outra_coisa=2&terceira_coisa=3 [NC,L]

São as chamadas "URLs Amigáveis". Mas prefira sempre trafegar informações importantes através de POST e não de GET. Não é nem um pouco seguro mostrar informações como nome de usuário e token de acesso pra qualquer pessoa poder ver.

 

Outra alternativa seria trabalhar com $_SESSION. Dessa forma a informação fica toda do lado do servidor e o usuário não tem acesso a ela.

 

Eu mesmo por muito tempo utilizei iFrames, mas aprendi na marra que é uma péssima opção pra maior parte das coisas. Além de atrapalhar no layout da página, o usuário tem como clicar com o botão direito e ver todas essas informações, de qualquer jeito. Enfim, iFrames só são úteis em casos extremamente específicos, então evite usá-los pra qualquer coisa. Acaba deixando sua página mais pesada e mais suscetível a falhas de segurança.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terei que criar uma linha para cada página?

Basicamente: sim. rs

 

Na verdade, pode criar uma regra de acesso pra não ter que ficar criando redirecionamentos desse tipo pra cada uma das suas páginas (como eu mesmo já fiz um dia HSUAHSUA). Mas aí talvez tenha que reestruturar o seu site... pode até te dar trabalho, mas acredite: vai melhorar muito depois.

 

O que eu quero dizer com "regra de acesso" é algo como:

Rewrite Engine On
RewriteRule loja/([a-zA-Z0-9_]+)/?$ produto.php?id=$1

Se o usuário digita:

  • www.meusite.com/loja/produto1

Na verdade ele está acessando:

  • www.meusite.com/produto.php?id=produto1

 

Assim como se ele digita:

  • www.meusite.com/loja/123

Na verdade ele está acessando:

  • www.meusite.com/produto.php?id=123

 

Outro exemplo mais complexo é:

Rewrite Engine On
RewriteRule loja/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ produto.php?id=$1&cor=$2

Se o usuário digita:

  • www.meusite.com/loja/camisa/azul

Na verdade ele está acessando:

  • www.meusite.com/produto.php?id=camisa&cor=azul

 

Só to te mostrando isso tudo porque aí você pode fazer o que bem entender com isso. Mas eu realmente recomendo usar $_SESSION ou POST pra trafegar esses seus dados, já que se trata de muitas páginas. É seguro e evita possíveis erros. Quando você trata toda essa informação via URL, se o usuário for lá e apagar uma aprte da URL, pronto: lá se foi o seu trabalho por água abaixo.

 

É mais interessante que usuário final não tenha acesso a essa informação de modo algum. Assim ainda aumenta a segurança. Pode usar até Cookies, mas aí ainda diminui a segurança pq o usuário ainda tem acesso á informação.

 

Usando SESSION você pode guardar o nome de usuário, senha, token de acesso e tudo que precisar dentro do seu próprio servidor. Se torna muito mais fácil trabalhar os dados da pessoa e ainda evita que alguém acesse de forma indevida as informações de outra pessoa.

 

Sei lá, não sei qual opção te agrada mais, mas realmente te recomendo usar SESSION e, se precisar, usar Cookies pra salvar a sessão da pessoa e voltar de onde parou depois (do jeito que fazemos nos sistemas de login com aquele botão "lembrar de mim neste computador").

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo vc quer isso para que o usuário não possa trocar os valores informados na URL neh?

 

Eu tive um problema com isso tb, uma solução que fiz foi abrir o site em uma nova janela bloqueando a URL, e se o usuário tentar copiar a URL e jogar em uma nova janela ele verifica se ele está na janela aberta, senão ele abre uma nova janela com a tela inicial.

Compartilhar este post


Link para o post
Compartilhar em outros sites

wolfphw como vc fez isso?

 

Bom andei analizando e troquei todos o meu sistema para SESSION, é muito mais seguro de trabalhar.

 

Porem estou com mais um problema. Para enviar valores via _POST eu preciso de um formulário correto? Então preciso enviar estes valores pelo link. Como irei ocultar isso usando SESSION? Alguém tem alguma ideia?

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.