iMasters Fóruns: Para impedir que suas imagens sejam exibidas em outro endereço - iMasters Fóruns

Ir para

Bom uso da área



Atenção:
Este subfórum é destinado apenas para postagem de artigos, tutoriais e matérias sobre PHP.
Não é permitido a abertura de tópicos com dúvidas. Para isso, use o Fórum de PHP.
Página 1 de 1
  • Novo tópico
  • Responder

Para impedir que suas imagens sejam exibidas em outro endereço passo a passo na faixa

#1 Membro offline   supertelnet Ícone

  • ..:Tellys:.. Para a Infanteria os melhores sao apenas bons
  • Ícone
  • Grupo: Membros
  • Posts: 756
  • Cadastrado: 01-agosto 06
  • Sexo:Masculino
  • Localização:Tres Pontas - Minas Gerais

Ícone  Postou 01 março 2007 - 12:13

Sobrou um tempinho e por aqui sempre se fala sobre assuntos analogos, nisto ai vai....


Para impedir que suas imagens sejam exibidas em outros endereços, você pode usar um script simples em PHP. Será necessário apenas modificar todas as tags de imagens de suas páginas pra algo como:

<img src="imagem.php?arrquivo=imagem1.gif">



O arquivo imagem.php, para a tag <img> puxa a imagem de um diretorio chamado imagens. O codigo que deve estar neste documento é o seguinte:

<?php
session_start();
$path = "./imagens/.";
$minitype ="image/gif";
if ($_SESSION["ticket"] == "aceito"){
header("Content-type: ");
readfile($path.$arquivo);
}
?>


Esse script verifica uma variavel de sessao para liberar a exibiçao de imagem. Por isso, toda pagina do site que for mostrar alguma imagem deve apresentar um codigo que cria essa sessao em seu topo

<?php
session_start();
$ticket = "aceito"
session_register($_SESSION["ticket]");
?>



vlw

#2 Membro offline   Anderson Mello Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 1477
  • Cadastrado: 11-maio 05
  • Localização:Rio Grande do Sul

Postou 01 março 2007 - 13:43

Movido: PHP :seta: Artigos, Dicas... ;)

#3 Membro offline   Beraldo Ícone

  • There's no place like 127.0.0.1
  • Ícone
  • Grupo: Moderadores
  • Posts: 7517
  • Cadastrado: 02-julho 06
  • Sexo:Masculino
  • Localização:Curitiba - PR

Postou 01 março 2007 - 14:19

Boa solução, supertelnet, mas...

Quote

Se você quer que seu script funcione independentemente do uso de register_globals, você precisa usar a matriz $_SESSION já que $_SESSION é automaticamente registrada. Se o seu script usa session_register(), ele não irá funcionar em ambientes onde a diretiva de configuração register_globals esteja desabilitada.

Fonte: http://br2.php.net/session_register



Então gostaria de sugerir uma mudança: trocar:
<?php
session_start();
$ticket = "aceito"
session_register($_SESSION["ticket]");
?>


por:
<?php
session_start();
$_SESSION['ticket'] = "aceito";
?>


;)

[]'s

#4 Membro offline   nb-master Ícone

  • Wwweb Master
  • Grupo: Aguardando Liberação
  • Posts: 361
  • Cadastrado: 04-setembro 06
  • Localização:Cachoeiro de Itapemirim - ES

Postou 01 março 2007 - 14:27

uma dica

dependendo do servidor que você esteja utilizando basta ativar o hotlink ele fara com que nenhum espertinho chame sua imagem fora de seu servidor...

#5 Membro offline   supertelnet Ícone

  • ..:Tellys:.. Para a Infanteria os melhores sao apenas bons
  • Ícone
  • Grupo: Membros
  • Posts: 756
  • Cadastrado: 01-agosto 06
  • Sexo:Masculino
  • Localização:Tres Pontas - Minas Gerais

Postou 01 março 2007 - 18:21

Pode ser Beraldo, uma boa!!! é que agente que esta acostumado com php tem umas manias antigas...hehe...

mas so coloquei pq ultimamente tenho visto muitas perguntas a respeito ai so pra da uma força pra qm ta começando

#6 Membro offline   prog_web Ícone

  • Indefinível
  • Ícone
  • Grupo: Membros
  • Posts: 316
  • Cadastrado: 27-julho 06
  • Localização:Sou mineiro, uai!

Postou 14 março 2007 - 15:59

Legal! Usando o htaccess também dá para evitar isto.

#7 Membro offline   hygorsandro Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 146
  • Cadastrado: 11-abril 06

Postou 13 maio 2007 - 12:50

um exemplo, ai no meu site,
tem imagens no formato jpge , gif e png...
como ficaria?

$minitype ="image/gif/jpge/png"; //acho assim meio q sem logica, neh, so confirma ai para mim...

e tbem.

<img src="imagem.php?arrquivo=imagem1.gif">

ond esta escrito arrquivo seria oq?

#8 Membro offline   jeancarioca Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 91
  • Cadastrado: 18-maio 05

Postou 17 maio 2007 - 14:27

Ver posthygorsandro, em 13/05/2007 - 12:50, disse:

um exemplo, ai no meu site,
tem imagens no formato jpge , gif e png...
como ficaria?

$minitype ="image/gif/jpge/png"; //acho assim meio q sem logica, neh, so confirma ai para mim...

e tbem.

<img src="imagem.php?arrquivo=imagem1.gif">

ond esta escrito arrquivo seria oq?


Também estou com essa dúvida.

#9 Membro offline   Fabyo Ícone

  • PHP
  • Ícone
  • Grupo: Masters
  • Posts: 5870
  • Cadastrado: 08-outubro 04
  • Sexo:Masculino
  • Localização:Ribeirão Pires - SP

Postou 17 maio 2007 - 14:35

só uma coisa o que o artigo explica, nao impede que as imagens sejam copias, só é util como no caso de alguem tentar usar hotlinks

#10 Membro offline   narizgudo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 159
  • Cadastrado: 02-outubro 07

Postou 03 outubro 2007 - 01:42

uma ideia pra ter o type dinamico

<?php
session_start();
$path = "./imagens/.";
$tipo = explode(".", $arquivo);
$minitype ="image/".array_pop($tipo);
if ($_SESSION["ticket"] == "aceito"){
header("Content-type: $minitype");
readfile($path.$arquivo);
}
?>


assim o codigo coloca "image/extencao_do_arquivo" =D

#11 Membro offline   hinom Ícone

  • Ícone
  • Grupo: Administradores
  • Posts: 12097
  • Cadastrado: 24-fevereiro 03
  • Sexo:Masculino
  • Localização:日本

Postou 03 outubro 2007 - 11:31

não é seguro obter o Content-type pela extensão

use a função mime_magic pra saber qual o tipo do arquivo

pode usar também getimagesize


PHP
$size = getimagesize($filename);
echo $size['mime'];


Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)