Ir para conteúdo

Arquivado

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

Filipe_Moraes

Aplicação php retorna dados em json

Recommended Posts

Olá pessoal.

No meu javascript tenho um "$.ajax" no qual o url é um ficheiro php que retorna os dados em json.

Ao digitar no browser o mesmo url, a resposta é renderizada e mostra os dados.

Como bloquear esse ficheiro php para que somente a aplicação consiga acessa-lo?

 

Atualmente estou usando o htaccess para url amigaveis.

O url fica da seguinte maneira (por exemplo): 'http://localhost:8080/portal/teste.json?a=4&b=fff'

 

Tudo que é ".json" redireciona para um php que retorna a resposta em json.

O resto vai para a "index.php".

 

Para bloquear estou fazendo da seguinte forma:

- A aplicação sempre passa pela index, então estou criando uma session.

- No ficheiro php que retorna resposta em json, estou verificando se essa session existe, se não da acesso negado.

 

Funciona em parte, se digitar o url do ajax da acesso negado, mas se digitar o dominio (que da acesso a index) e depois digitar o url do ajax, já renderiza os dados.

 

Há maneira de bloquear o acesso direto?

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

campo tipo hidden com valores padrões

 

Olá Vinicius.

Obrigado pelo seu tempo.

 

Não entendi a solução, como assim campos tipo hidden?

Como seria isso no cenário que postei no primeiro post?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form>
<input type="hidden" name="act" value="renderizarDados1">
</form>

var acao = $('input').attr('act').val();
$.ajax(
'pagin.php',
{act: acao}
);

 

PHP

if(isset($_POST['act']) && !empty($_POST['act'])){
  switch($_POST['act']){
      case 'renderizarDados1':
           //codephp
      break;
     default:
            echo "sem permissão para visualizar esse arquivo";
     break;
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius Rangel,

 

Dessa maneira, um programador com poucos conhecimentos consegue dar a volta, queria mesmo era bloquear no lado do servidor, onde não haveria maneira de manipular.

 

Dessa forma basta abrir o debug do firefox e ver a chamada do ajax, copiar e colar no browser que irá renderizar os dados.

 

Obrigado pelo seu tempo e pela sua ajuda.

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, estou com essa mesma necessidade, com um diferencia que uso sessoes, então so quem podera ver os dados no formato json, é quem está logado.

 

Mas, gostaria que isso fosse bloqueado também, conseguiu a solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia utilizar .htaccess, para bloquear todo e qualquer acesso externo a um determinado diretório. Mas nunca testei com conexões via javascript.

 

Aqui há um exemplo:

http://forum.imasters.com.br/topic/486182-proteo-de-arquivos/?p=1931926

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.